From 5aa83a524a7b5d1d64c0b6fb009942552598d748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Madar=C3=A1sz?= Date: Wed, 15 Nov 2023 20:14:14 +0100 Subject: [PATCH] huge v4k update --- MAKE.bat | 1 + engine/joint/v4k.h | 1353 ++++++---- engine/split/3rd_archive.h | 3 +- engine/split/3rd_base64.h | 140 ++ engine/split/3rd_compress.h | 46 +- engine/split/3rd_https.h | 6 +- engine/split/v4k.x.inl | 2 + engine/split/v4k_audio.c | 14 +- engine/split/v4k_cook.c | 116 +- engine/split/v4k_data.c | 79 +- engine/split/v4k_editor.c | 6 +- engine/split/v4k_editor.h | 4 +- engine/split/v4k_extend.c | 2 +- engine/split/v4k_file.c | 112 +- engine/split/v4k_font.c | 1 - engine/split/v4k_input.c | 80 +- engine/split/v4k_math.c | 6 +- engine/split/v4k_netsync.c | 10 +- engine/split/v4k_obj.c | 22 +- engine/split/v4k_obj.h | 23 +- engine/split/v4k_pack.c | 4 +- engine/split/v4k_pack.h | 33 +- engine/split/v4k_profile.c | 63 +- engine/split/v4k_reflect.c | 14 +- engine/split/v4k_render.c | 88 +- engine/split/v4k_render.h | 17 +- engine/split/v4k_renderdd.c | 8 +- engine/split/v4k_scene.c | 14 +- engine/split/v4k_string.c | 12 +- engine/split/v4k_system.c | 78 +- engine/split/v4k_system.h | 6 +- engine/split/v4k_time.c | 4 +- engine/split/v4k_time.h | 2 +- engine/split/v4k_ui.c | 281 ++- engine/split/v4k_ui.h | 10 +- engine/split/v4k_window.c | 45 +- engine/split/v4k_window.h | 1 + engine/v4k | 198 +- engine/v4k.c | 1059 ++++---- engine/v4k.h | 96 +- tools/3rd_aseprite.h | 1348 ++++++++++ tools/3rd_atlasc.h | 857 +++++++ tools/ase2ini.c | 224 ++ tools/ase2ini.exe | Bin 0 -> 352768 bytes tools/cook.c | 4 +- tools/cook.exe | Bin 5925888 -> 5874688 bytes tools/cook.ini | 25 +- tools/cook.lib | Bin 0 -> 1900 bytes tools/editor/3rd_lite.h | 1 + tools/editor/3rd_lite_sys.h | 8 +- .../art/lite/data/core/commands/doc.lua | 333 +-- .../lite/data/core/commands/findreplace.lua | 83 +- tools/editor/art/lite/data/core/common.lua | 44 + tools/editor/art/lite/data/core/config.lua | 6 +- tools/editor/art/lite/data/core/doc/init.lua | 290 ++- tools/editor/art/lite/data/core/docview.lua | 86 +- tools/editor/art/lite/data/core/init.lua | 7 + tools/editor/art/lite/data/core/keymap.lua | 6 +- tools/editor/art/lite/data/core/node.lua | 375 +++ tools/editor/art/lite/data/core/rootview.lua | 371 +-- .../editor/art/lite/data/core/statusview.lua | 28 +- tools/editor/art/lite/data/lite.usage | 4 +- .../editor/art/lite/data/plugins/console.lua | 383 +++ .../art/lite/data/plugins/contextmenu.lua | 271 ++ .../art/lite/data/plugins/drawwhitespace.lua | 37 + .../editor/art/lite/data/plugins/fsutils.lua | 167 ++ .../art/lite/data/plugins/gitstatus.lua | 68 - .../art/lite/data/plugins/motiontrail.lua | 48 +- tools/editor/art/lite/data/plugins/sort.lua | 30 + .../art/lite/data/plugins/todotreeview.lua | 389 +++ .../editor/art/lite/data/plugins/treeview.lua | 101 +- tools/editor/editor | 82 - tools/editor/editor.c | 2211 +++-------------- tools/editor/{editor3.h => editor.h} | 0 tools/editor/editor3.c | 404 --- tools/editor/objtests.h | 9 +- tools/editor/stdio2.c | 297 +++ tools/editor/v4k_editor.h | 41 +- tools/editor/v4k_editor6_script.h | 22 +- tools/editor/v4k_sprite.c | 455 ++++ tools/editor/windows.ini | 2 +- 81 files changed, 8506 insertions(+), 4670 deletions(-) create mode 100644 engine/split/3rd_base64.h create mode 100644 tools/3rd_aseprite.h create mode 100644 tools/3rd_atlasc.h create mode 100644 tools/ase2ini.c create mode 100644 tools/ase2ini.exe create mode 100644 tools/cook.lib create mode 100644 tools/editor/art/lite/data/core/node.lua create mode 100644 tools/editor/art/lite/data/plugins/console.lua create mode 100644 tools/editor/art/lite/data/plugins/contextmenu.lua create mode 100644 tools/editor/art/lite/data/plugins/drawwhitespace.lua create mode 100644 tools/editor/art/lite/data/plugins/fsutils.lua delete mode 100644 tools/editor/art/lite/data/plugins/gitstatus.lua create mode 100644 tools/editor/art/lite/data/plugins/sort.lua create mode 100644 tools/editor/art/lite/data/plugins/todotreeview.lua delete mode 100644 tools/editor/editor rename tools/editor/{editor3.h => editor.h} (100%) delete mode 100644 tools/editor/editor3.c create mode 100644 tools/editor/stdio2.c create mode 100644 tools/editor/v4k_sprite.c diff --git a/MAKE.bat b/MAKE.bat index fdcdafd..d46b9ba 100644 --- a/MAKE.bat +++ b/MAKE.bat @@ -482,6 +482,7 @@ if "%1"=="tidy" ( del *.mp4 > nul 2> nul del *.def > nul 2> nul del *.dll > nul 2> nul + del *.csv > nul 2> nul del 3rd_*.* > nul 2> nul del v4k_*.* > nul 2> nul del v4k.html > nul 2> nul diff --git a/engine/joint/v4k.h b/engine/joint/v4k.h index 3ac1df7..2ac99e0 100644 --- a/engine/joint/v4k.h +++ b/engine/joint/v4k.h @@ -15206,17 +15206,17 @@ bool id_valid(uintptr_t id); #define OBJHEADER \ struct { \ ifdef(debug, const char *objname;) \ - union { \ - uintptr_t objheader; \ - struct { \ - uintptr_t objtype:8; \ - uintptr_t objsizew:8; \ - uintptr_t objrefs:8; \ - uintptr_t objheap:1; \ - uintptr_t objcomps:1; /* << can be removed? check payload ptr instead? */ \ - uintptr_t objunused:64-8-8-8-1-1-ID_INDEX_BITS-ID_COUNT_BITS; /*19*/ \ - uintptr_t objid:ID_INDEX_BITS+ID_COUNT_BITS; /*16+3*/ \ - }; \ + union { \ + uintptr_t objheader; \ + struct { \ + uintptr_t objtype:8; \ + uintptr_t objsizew:8; \ + uintptr_t objrefs:8; \ + uintptr_t objheap:1; \ + uintptr_t objcomps:1; /* << can be removed? check payload ptr instead? */ \ + uintptr_t objunused:64-8-8-8-1-1-ID_INDEX_BITS-ID_COUNT_BITS; /*19*/ \ + uintptr_t objid:ID_INDEX_BITS+ID_COUNT_BITS; /*16+3*/ \ + }; \ }; \ array(struct obj*) objchildren; \ }; @@ -15508,7 +15508,6 @@ typedef enum OBJTYPE_BUILTINS { OBJTYPE_vec2i = 9, OBJTYPE_vec3i = 10, } OBJTYPE_BUILTINS; - #line 0 @@ -15940,8 +15939,8 @@ API void *script_init_env(unsigned flags); //API void editor(); //API bool editor_active(); -API vec3 editor_pick(float mouse_x, float mouse_y); -API char* editor_path(const char *path); +API vec3 editor_pick(float mouse_x, float mouse_y); +API char* editor_path(const char *path); API float* engine_getf(const char *key); API int* engine_geti(const char *key); @@ -16721,9 +16720,9 @@ API char* ftoa3(vec3 v); API char* ftoa4(vec4 v); API float atof1(const char *s); -API vec2 atof2(const char *s); -API vec3 atof3(const char *s); -API vec4 atof4(const char *s); +API vec2 atof2(const char *s); +API vec3 atof3(const char *s); +API vec4 atof4(const char *s); API char* itoa1(int v); API char* itoa2(vec2i v); @@ -16736,14 +16735,14 @@ API vec3i atoi3(const char *s); // ---------------------------------------------------------------------------- // endianness -API int is_big(); -API int is_little(); +API int is_big(); +API int is_little(); -API uint16_t swap16( uint16_t x ); -API uint32_t swap32( uint32_t x ); -API uint64_t swap64( uint64_t x ); -API float swap32f(float n); -API double swap64f(double n); +API uint16_t swap16( uint16_t x ); +API uint32_t swap32( uint32_t x ); +API uint64_t swap64( uint64_t x ); +API float swap32f(float n); +API double swap64f(double n); API void swapf(float *a, float *b); API void swapf2(vec2 *a, vec2 *b); API void swapf3(vec3 *a, vec3 *b); @@ -16761,17 +16760,17 @@ API uint64_t big64(uint64_t n); // swap64 as big API float big32f(float n); // swap32 as big API double big64f(double n); // swap64 as big -API uint16_t* lil16p(void *p, int sz); -API uint32_t* lil32p(void *p, int sz); -API uint64_t* lil64p(void *p, int sz); -API float * lil32pf(void *p, int sz); -API double * lil64pf(void *p, int sz); +API uint16_t* lil16p(void *p, int sz); +API uint32_t* lil32p(void *p, int sz); +API uint64_t* lil64p(void *p, int sz); +API float * lil32pf(void *p, int sz); +API double * lil64pf(void *p, int sz); API uint16_t* big16p(void *p, int sz); API uint32_t* big32p(void *p, int sz); API uint64_t* big64p(void *p, int sz); API float * big32pf(void *p, int sz); -API double * big64pf(void *p, int sz); +API double * big64pf(void *p, int sz); #if is(cl) #define swap16 _byteswap_ushort @@ -16925,6 +16924,7 @@ API int saveb(unsigned char *buf, const char *format, ...); API int loadf(FILE *file, const char *format, ...); API int loadb(const unsigned char *buf, const char *format, ...); + #line 0 #line 1 "engine/split/v4k_profile.h" @@ -17066,6 +17066,9 @@ API unsigned alpha( unsigned rgba ); #define BLUE RGBX(0xB55A06,255) +API unsigned atorgba(const char *s); +API char * rgbatoa(unsigned rgba); + // ----------------------------------------------------------------------------- // images @@ -17150,6 +17153,7 @@ typedef struct texture_t { char* filename; bool transparent; unsigned fbo; // for texture recording + union { unsigned userdata, delay; }; } texture_t; API texture_t texture_compressed(const char *filename, unsigned flags); @@ -17214,8 +17218,8 @@ API void fullscreen_quad_ycbcr_flipped( texture_t texture_YCbCr[3], float gamma // texture id, position(x,y,depth sort), tint color, rotation angle API void sprite( texture_t texture, float position[3], float rotation /*0*/, uint32_t color /*~0u*/); -// texture id, rect(x,y,w,h) is [0..1] normalized, z-index, pos(xy,scale), rotation (degrees), color (rgba) -API void sprite_rect( texture_t t, vec4 rect, float zindex, vec3 pos, float tilt_deg, unsigned tint_rgba); +// texture id, rect(x,y,w,h) is [0..1] normalized, z-index, pos(xy,scale.xy), rotation (degrees), color (rgba) +API void sprite_rect( texture_t t, vec4 rect, float zindex, vec4 pos, float tilt_deg, unsigned tint_rgba); // texture id, sheet(frameNumber,X,Y) (frame in a X*Y spritesheet), position(x,y,depth sort), rotation angle, offset(x,y), scale(x,y), is_additive, tint color API void sprite_sheet( texture_t texture, float sheet[3], float position[3], float rotation, float offset[2], float scale[2], int is_additive, uint32_t rgba, int resolution_independant); @@ -17233,7 +17237,8 @@ typedef struct tileset_t { } tileset_t; API tileset_t tileset(texture_t tex, unsigned tile_w, unsigned tile_h, unsigned cols, unsigned rows); -API int tileset_ui( tileset_t t ); + +API int ui_tileset( tileset_t t ); typedef struct tilemap_t { int blank_chr; // transparent tile @@ -17268,7 +17273,8 @@ typedef struct tiled_t { API tiled_t tiled(const char *file_tmx); API void tiled_render(tiled_t tmx, vec3 pos); -API void tiled_ui(tiled_t *t); + +API void ui_tiled(tiled_t *t); // ----------------------------------------------------------------------------- // spines @@ -17279,7 +17285,8 @@ API spine_t*spine(const char *file_json, const char *file_atlas, unsigned flags) API void spine_skin(spine_t *p, unsigned skin); API void spine_render(spine_t *p, vec3 offset, unsigned flags); API void spine_animate(spine_t *p, float delta); -API void spine_ui(spine_t *p); + +API void ui_spine(spine_t *p); // ----------------------------------------------------------------------------- // cubemaps @@ -18088,13 +18095,13 @@ API void trap_on_quit(int signal); // helper util API void trap_on_abort(int signal); // helper util API void trap_on_debug(int signal); // helper util -#define PANIC(...) PANIC(va(__VA_ARGS__), strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__, __LINE__) // die() ? +#define PANIC(...) PANIC(va(""__VA_ARGS__), __FILE__, __LINE__) // die() ? API int (PANIC)(const char *error, const char *file, int line); -#define PRINTF(...) PRINTF(va(__VA_ARGS__), 1[#__VA_ARGS__] == '!' ? callstack(+48) : "", strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__, __LINE__, __FUNCTION__) +#define PRINTF(...) PRINTF(va(""__VA_ARGS__), 1[""#__VA_ARGS__] == '!' ? callstack(+48) : "", __FILE__, __LINE__, __FUNCTION__) API int (PRINTF)(const char *text, const char *stack, const char *file, int line, const char *function); -#define test(expr) test(strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__,__LINE__,#expr,!!(expr)) +#define test(expr) test(__FILE__,__LINE__,#expr,!!(expr)) API int (test)(const char *file, int line, const char *expr, bool result); #if ENABLE_AUTOTESTS @@ -18268,7 +18275,7 @@ typedef struct curve_t { API curve_t curve(); API void curve_add(curve_t *c, vec3 p); API void curve_end(curve_t *c, int num_points); -API vec3 curve_eval(curve_t *c, float dt, unsigned *color); +API vec3 curve_eval(curve_t *c, float dt, unsigned *color); API void curve_destroy(curve_t *c); #line 0 @@ -18304,11 +18311,13 @@ API int ui_mat44(const char *label, float mat44[16]); API int ui_double(const char *label, double *value); API int ui_buffer(const char *label, char *buffer, int buflen); API int ui_string(const char *label, char **string); -API int ui_color3(const char *label, float *color3); //[0..255] -API int ui_color3f(const char *label, float *color3); //[0..1] -API int ui_color4(const char *label, float *color4); //[0..255] -API int ui_color4f(const char *label, float *color4); //[0..1] +API int ui_color3(const char *label, unsigned *color); //[0..255] +API int ui_color3f(const char *label, float color[3]); //[0..1] +API int ui_color4(const char *label, unsigned *color); //[0..255] +API int ui_color4f(const char *label, float color[4]); //[0..1] API int ui_unsigned(const char *label, unsigned *value); +API int ui_unsigned2(const char *label, unsigned *value); +API int ui_unsigned3(const char *label, unsigned *value); API int ui_button(const char *label); API int ui_button_transparent(const char *label); API int ui_buttons(int buttons, /*labels*/...); @@ -18427,6 +18436,7 @@ enum WINDOW_FLAGS { WINDOW_ASPECT = 0x100, // keep aspect WINDOW_FIXED = 0x200, // disable resizing WINDOW_TRANSPARENT = 0x400, + WINDOW_BORDERLESS = 0x800, WINDOW_VSYNC = 0, WINDOW_VSYNC_ADAPTIVE = 0x1000, @@ -32481,6 +32491,7 @@ int gladLoadGL( GLADloadfunc load) { // 3rd party libs #define ARCHIVE_C // archive.c +#define BASE64_C // base64.c #define COMPRESS_C // compress.c #define ENET_IMPLEMENTATION // enet #define GJK_C // gjk @@ -251244,12 +251255,7 @@ static bool LzmaDec_Init(CLzmaDec *p, const uint8_t *raw_props) // glue.c -static -#ifdef _MSC_VER -__declspec(thread) -#else -__thread -#endif +static __thread struct { uint8_t *begin, *seek, *end; } @@ -252589,9 +252595,7 @@ static inline uint32_t DecodeMod(const uint8_t** p) { // LZ77 -static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outlen) { - ULZ_WORKMEM *u =(ULZ_WORKMEM*)ULZ_REALLOC(0, sizeof(ULZ_WORKMEM)); - +static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outlen, ULZ_WORKMEM *u) { for (int i=0; iHashTable[i]=ULZ_NIL; @@ -252673,16 +252677,14 @@ static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outle op+=run; } - ULZ_REALLOC(u, 0); return op-out; } -static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, int level) { +static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, int level, ULZ_WORKMEM *u) { if (level<1 || level>9) return 0; const int max_chain=(level<9)?1<HashTable[i]=ULZ_NIL; @@ -252807,7 +252809,6 @@ static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, i op+=run; } - ULZ_REALLOC(u, 0); return op-out; } @@ -252864,9 +252865,11 @@ static int UlzDecompress(const uint8_t* in, int inlen, uint8_t* out, int outlen) } unsigned ulz_encode(const void *in, unsigned inlen, void *out, unsigned outlen, unsigned flags) { + static __thread ULZ_WORKMEM u; + int level = flags > 9 ? 9 : flags; // [0..(6)..9] - int rc = level ? UlzCompress((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, level) - : UlzCompressFast((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen); + int rc = level ? UlzCompress((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, level, &u) + : UlzCompressFast((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, &u); return (unsigned)rc; } unsigned ulz_decode(const void *in, unsigned inlen, void *out, unsigned outlen) { @@ -253002,7 +253005,7 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned double enctime = 0; if( logfile ) tm = clock(); { - for( uint32_t inlen; (inlen=fread(inbuf, 1, BS_BYTES, in)) > 0 ; ) { + for( uint32_t inlen; (inlen=BS_BYTES * fread(inbuf, BS_BYTES, 1, in)) > 0 ; ) { uint32_t outlen[2] = {0}; best = clist[0]; @@ -253037,15 +253040,15 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned if( compr ) { uint8_t packer = (compr << 4) | flags; // store block length + compressor + compr data - if( fwrite(&outlen[0], 1, 4, out) != 4 ) goto fail; + if( fwrite(&outlen[0], 4, 1, out) != 1 ) goto fail; if( fwrite(&packer, 1, 1, out) != 1 ) goto fail; - if( fwrite(outbuf[0], 1, outlen[0], out) != outlen[0] ) goto fail; + if( fwrite(outbuf[0], outlen[0], 1, out) != 1 ) goto fail; } else { uint8_t packer = 0; // store block length + no-compressor + raw data - if( fwrite(&inlen, 1, 4, out) != 4 ) goto fail; + if( fwrite(&inlen, 4, 1, out) != 1 ) goto fail; if( fwrite(&packer, 1, 1, out) != 1 ) goto fail; - if( fwrite(inbuf, 1, inlen, out) != inlen ) goto fail; + if( fwrite(inbuf, inlen, 1, out) != 1 ) goto fail; } total_in += inlen; @@ -253079,8 +253082,8 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder - uint8_t block8; if( fread(&block8, 1,1, in ) < 1 ) return 0; - uint8_t excess8; if( fread(&excess8, 1,1, in ) < 1 ) return 0; + uint8_t block8; if( fread(&block8, 1,1, in ) != 1 ) return 0; + uint8_t excess8; if( fread(&excess8, 1,1, in ) != 1 ) return 0; uint64_t BLOCK_SIZE = 1ull << block8; uint64_t EXCESS = 1ull << excess8; @@ -253092,15 +253095,15 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder double dectime = 0; if(logfile) tm = clock(); { - for(uint32_t inlen=0, loop=0;fread(&inlen, 1, sizeof(inlen), in)>0;++loop) { + for(uint32_t inlen=0, loop=0;fread(&inlen, sizeof(inlen), 1, in) == 1;++loop) { if (inlen>(BLOCK_SIZE+EXCESS)) goto fail; uint8_t packer; - if( fread(&packer, 1,sizeof(packer), in) <= 0 ) goto fail; + if( fread(&packer, sizeof(packer),1, in) != 1 ) goto fail; if(packer) { // read compressed - if (fread(inbuf, 1, inlen, in)!=inlen) goto fail; + if (fread(inbuf, inlen,1, in)!=1) goto fail; // decompress uint8_t compressor = packer >> 4; @@ -253108,11 +253111,11 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder if (!outlen) goto fail; } else { // read raw - if (fread(outbuf, 1, inlen, in)!=inlen) goto fail; + if (fread(outbuf, inlen,1, in)!=1) goto fail; outlen=inlen; } - if (fwrite(outbuf, 1, outlen, out) != outlen) { + if (fwrite(outbuf, outlen, 1, out) != 1) { perror("fwrite() failed"); goto fail; } @@ -253165,6 +253168,7 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder #define ZIP_H #include #include +#include typedef struct zip zip; @@ -253688,7 +253692,7 @@ bool zip_append_file_timeinfo(zip *z, const char *entryname, const char *comment // @fixme: calc whole crc contents uint32_t crc = 0; - unsigned char buf[1<<15]; + unsigned char buf[4096]; while(!feof(in) && !ferror(in)) crc = zip__crc32(crc, buf, fread(buf, 1, sizeof(buf), in)); if(ferror(in)) return ERR(false, "Error while calculating CRC, skipping store."); @@ -278407,10 +278411,10 @@ extern const ltc_math_descriptor gmp_desc; /* ---- LTC_BASE64 Routines ---- */ #ifdef LTC_BASE64 -int base64_encode(const unsigned char *in, unsigned long len, +int base64_encodex(const unsigned char *in, unsigned long len, //< @r-lyeh +x unsigned char *out, unsigned long *outlen); -int base64_decode(const unsigned char *in, unsigned long len, +int base64_decodex(const unsigned char *in, unsigned long len, //< @r-lyeh +x unsigned char *out, unsigned long *outlen); #endif @@ -291128,7 +291132,7 @@ static int _base64_decode_internal(const unsigned char *in, unsigned long inlen @param outlen [in/out] The max size and resulting size of the decoded data @return CRYPT_OK if successful */ -int base64_decode(const unsigned char *in, unsigned long inlen, +int base64_decodex(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen) { return _base64_decode_internal(in, inlen, out, outlen, map_base64, relaxed); @@ -333907,6 +333911,148 @@ int dbg_pcall(lua_State *lua, int nargs, int nresults, int msgh){ return err; } #line 0 +#line 1 "engine/split/3rd_base64.h" +// base64 de/encoder. Based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN). +// - rlyeh, public domain + +#ifndef BASE64_H +#define BASE64_H + +unsigned base64_bounds(unsigned size); +char* base64_encode(const void *inp, unsigned inlen); // free() after use +char* base64_decode(const char *inp, unsigned inlen); // array_free() after use + +#endif + +#ifdef BASE64_C +#include +#include +#include +#include +#include + +#define BASE64_ENCODE_OUT_SIZE(s) ((unsigned int)((((s) + 2) / 3) * 4 + 1)) +#define BASE64_DECODE_OUT_SIZE(s) ((unsigned int)(((s) / 4) * 3)) + +unsigned base64_bounds(unsigned size) { + return BASE64_ENCODE_OUT_SIZE(size); +} + +char* base64_encode(const void *inp, unsigned inlen) { // free() after use + unsigned outlen = base64_bounds(inlen); + char *out_ = malloc(outlen); + out_[outlen] = 0; + + uint_least32_t v; + unsigned ii, io, rem; + char *out = (char *)out_; + const unsigned char *in = (const unsigned char *)inp; + const uint8_t base64enc_tab[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + for(io = 0, ii = 0, v = 0, rem = 0; ii < inlen; ii ++) { + unsigned char ch; + ch = in[ii]; + v = (v << 8) | ch; + rem += 8; + while (rem >= 6) { + rem -= 6; + if (io >= outlen) + return (free(out_), 0); /* truncation is failure */ + out[io ++] = base64enc_tab[(v >> rem) & 63]; + } + } + if (rem) { + v <<= (6 - rem); + if (io >= outlen) + return (free(out_), 0); /* truncation is failure */ + out[io ++] = base64enc_tab[v & 63]; + } + while(io&3) { + if(io>=outlen) return (free(out_), 0); /* truncation is failure */ + out[io++]='='; + } + if(io>=outlen) return (free(out_), 0); /* no room for null terminator */ + out[io]=0; + return out_; +} + +#ifdef array_resize +array(char) base64_decode(const char *inp, unsigned inlen) { // array_free() after use +#if 0 + unsigned long outlen = BASE64_DECODE_OUT_SIZE(inlen); + array(char) out_ = 0; array_resize(out_, outlen+1); + + if( base64_decodex((const unsigned char *)inp, (unsigned long)inlen, (unsigned char *)out_, &outlen) != CRYPT_OK ) { + array_free(out_); + return 0; + } + + array_resize(out_, outlen); + out_[outlen] = 0; + return out_; +#else + unsigned outlen = BASE64_DECODE_OUT_SIZE(inlen); + array(char) out_ = 0; array_resize(out_, outlen); + + // based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN) + uint_least32_t v; + unsigned ii, io, rem; + char *out = (char *)out_; + const unsigned char *in = (const unsigned char *)inp; + const uint8_t base64dec_tab[256]= { + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, + 255, 254, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, + 255, 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, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255 }; + + for (io = 0, ii = 0,v = 0, rem = 0; ii < inlen; ii ++) { + unsigned char ch; + if (isspace(in[ii])) + continue; + if ((in[ii]=='=') || (!in[ii])) + break; /* stop at = or null character*/ + ch = base64dec_tab[(unsigned char)in[ii]]; + if (ch == 255) + break; /* stop at a parse error */ + v = (v<<6) | ch; + rem += 6; + if (rem >= 8) { + rem -= 8; + if (io >= outlen) + return (array_free(out_), NULL); /* truncation is failure */ + out[io ++] = (v >> rem) & 255; + } + } + if (rem >= 8) { + rem -= 8; + if (io >= outlen) + return (array_free(out_), NULL); /* truncation is failure */ + out[io ++] = (v >> rem) & 255; + } + return (array_resize(out_, io), out_); +#endif +} +#endif // array_resize +#endif // BASE64_C +#line 0 //#define SQLITE_OMIT_LOAD_EXTENSION //#define SQLITE_CORE 1 //#define SQLITE_DEBUG 1 @@ -334687,11 +334833,12 @@ const char *strlerp(unsigned numpairs, const char **pairs, const char *str) { // } array(char*) strsplit(const char *str, const char *separators) { + enum { SLOTS = 32 }; static __thread int slot = 0; - static __thread char *buf[16] = {0}; - static __thread array(char*) list[16] = {0}; + static __thread char *buf[SLOTS] = {0}; + static __thread array(char*) list[SLOTS] = {0}; - slot = (slot+1) % 16; + slot = (slot+1) % SLOTS; array_resize(list[slot], 0); *(buf[slot] = REALLOC(buf[slot], strlen(str)*2+1)) = '\0'; // *2 to backup pathological case where input str is only separators && include == 1 @@ -334723,10 +334870,11 @@ array(char*) strsplit(const char *str, const char *separators) { return list[slot]; } char* strjoin(array(char*) list, const char *separator) { + enum { SLOTS = 16 }; static __thread int slot = 0; - static __thread char* mems[16] = {0}; + static __thread char* mems[SLOTS] = {0}; - slot = (slot+1) % 16; + slot = (slot+1) % SLOTS; int num_list = array_count(list); int len = 0, inc = 0, seplen = strlen(separator); @@ -335073,10 +335221,11 @@ static int ui_using_v2_menubar = 0; nk_menu_close(ui_ctx); \ nk_menu_end(ui_ctx); \ }} -#define UI_MENU_ALIGN_RIGHT(px) { \ +#define UI_MENU_ALIGN_RIGHT(px, ...) { \ int hspace = total_space.w - span - (px) - 1.5 * ITEM_WIDTH; \ nk_layout_row_push(ui_ctx, hspace); span += hspace; \ if (nk_menu_begin_label(ui_ctx, (title), align = NK_TEXT_RIGHT, nk_vec2(1,1))) { \ + __VA_ARGS__; \ nk_menu_close(ui_ctx); \ nk_menu_end(ui_ctx); \ }} @@ -335090,9 +335239,9 @@ static int ui_using_v2_menubar = 0; #define UI_FONT_ENUM(carlito,b612) b612 // carlito -#define UI_FONT_REGULAR UI_FONT_ENUM("Carlito", "B612") "-Regular.ttf" -#define UI_FONT_HEADING UI_FONT_ENUM("Carlito", "B612") "-BoldItalic.ttf" -#define UI_FONT_TERMINAL UI_FONT_ENUM("Inconsolata", "B612Mono") "-Regular.ttf" +#define UI_FONT_REGULAR UI_FONT_ENUM("Carlito", "B612") "-Regular.ttf" +#define UI_FONT_HEADING UI_FONT_ENUM("Carlito", "B612") "-BoldItalic.ttf" +#define UI_FONT_TERMINAL UI_FONT_ENUM("Inconsolata", "B612Mono") "-Regular.ttf" #if UI_LESSER_SPACING enum { UI_SEPARATOR_HEIGHT = 5, UI_MENUBAR_ICON_HEIGHT = 20, UI_ROW_HEIGHT = 22, UI_MENUROW_HEIGHT = 32 }; @@ -335187,7 +335336,7 @@ static void nk_config_custom_fonts() { // Monospaced font. Used in terminals or consoles. for( char *data = vfs_load(UI_FONT_TERMINAL, &datalen); data; data = 0 ) { - const float font_size = UI_FONT_REGULAR_SIZE; + const float font_size = UI_FONT_REGULAR_SIZE; static const nk_rune icon_range[] = {32, 127, 0}; struct nk_font_config cfg = nk_font_config(font_size); @@ -335484,10 +335633,10 @@ vec2 ui_toolbar_(array(ui_item_t) ui_items, vec2 ui_results) { if( nk_menu_item_text(ui_ctx, item, lens[j], NK_TEXT_LEFT) ) { ui_results = vec2(i+1, j+1-1); } - } + } nk_menu_end(ui_ctx); - } + } } } @@ -335871,7 +336020,7 @@ int ui_set_enable_(int enabled) { static struct nk_input input; if (!enabled) { ui_alpha_push(0.5); - ui_ctx->style = off; // .button = off.button; + ui_ctx->style = off; // .button = off.button; input = ui_ctx->input; memset(&ui_ctx->input, 0, sizeof(ui_ctx->input)); } else { @@ -336182,7 +336331,7 @@ int ui_layout_all_load_disk(const char *mask) { const char *title = ui_layout_load_disk(k, mask, i, &out); if( title ) { struct nk_window *win = nk_window_find(ui_ctx, title); - if( win ) { + if( win ) { win->bounds.x = out.x; win->bounds.y = out.y; win->bounds.w = out.w; @@ -336306,7 +336455,7 @@ if( win ) { if( group1_any || !group2_interacting || anim_in_progress ) { struct nk_rect target = ui_layout_load_mem(idx, desktop, is_panel); - float alpha = len2sq(sub2(s->desktop, desktop)) ? 0 : UI_ANIM_ALPHA; // smooth unless we're restoring a desktop change + float alpha = len2sq(sub2(s->desktop, desktop)) ? 0 : UI_ANIM_ALPHA; // smooth unless we're restoring a desktop change #if 1 if( is_window && win->flags & NK_WINDOW_FULLSCREEN ) { target.x = 1; @@ -336322,7 +336471,7 @@ if( win ) { target.y = ((desktop.h - workarea_h) - target.h) / 2; } #endif - win->bounds = nk_rect( + win->bounds = nk_rect( win->bounds.x * alpha + target.x * (1 - alpha), win->bounds.y * alpha + target.y * (1 - alpha), win->bounds.w * alpha + target.w * (1 - alpha), @@ -336377,7 +336526,7 @@ if( is_notify ) { if( nk_begin(ui_ctx, title, start_coords, window_flags) ) { // set width for all inactive panels -struct nk_rect bounds = nk_window_get_bounds(ui_ctx); +struct nk_rect bounds = nk_window_get_bounds(ui_ctx); if( mouse_pressed && win && win->is_window_resizing ) { edge = vec2(bounds.w, bounds.h); @@ -336399,7 +336548,7 @@ if( mouse_pressed && win && win->is_window_resizing ) { } else { if(is_panel) { - ui_panel_end(); + ui_panel_end(); } else ui_window_end(); return 0; @@ -336474,7 +336623,7 @@ int ui_panel(const char *title, int flags) { if(!ui_window_has_menubar) nk_layout_row_push(ui_ctx, 70); ui_window_has_menubar = 1; - return nk_menu_begin_text_styled(ui_ctx, title, strlen(title), NK_TEXT_ALIGN_CENTERED|NK_TEXT_ALIGN_MIDDLE, nk_vec2(220, 200), &transparent_style); + return nk_menu_begin_text_styled(ui_ctx, title, strlen(title), NK_TEXT_ALIGN_CENTERED|NK_TEXT_ALIGN_MIDDLE, nk_vec2(220, 200), &transparent_style); } return ui_begin_panel_or_window_(title, flags, false); @@ -336621,7 +336770,7 @@ if( !has_icon ) { } else { char *icon_glyph = va("%.*s", icon_len, icon); -// @todo: implement nk_push_layout() +// @todo: implement nk_push_layout() // nk_rect bounds = {..}; nk_panel_alloc_space(bounds, ctx); struct nk_window *win = ui_ctx->current; struct nk_panel *layout = win->layout, copy = *layout; @@ -336652,7 +336801,7 @@ if( font ) nk_style_pop_font(ui_ctx); // old way // ui_labeicon_l_icked_L.x = is_hovering ? nk_input_has_mouse_click_down_in_rect(input, NK_BUTTON_LEFT, layout->bounds, nk_true) : 0; // new way - // this is an ugly hack to detect which icon (within a label) we're clicking on. + // this is an ugly hack to detect which icon (within a label) we're clicking on. // @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? ui_label_icon_clicked_L.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (alignment == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; @@ -336668,20 +336817,20 @@ int ui_label(const char *label) { } static int nk_label_(struct nk_context *ui_ctx, const char *text_, int align2 ) { -const struct nk_input *input = &ui_ctx->input; -struct nk_rect bounds = nk_widget_bounds(ui_ctx); -int is_hovering = nk_input_is_mouse_hovering_rect(input, bounds) && !ui_has_active_popups; -if( is_hovering ) { - struct nk_rect winbounds = nk_window_get_bounds(ui_ctx); - is_hovering &= nk_input_is_mouse_hovering_rect(input, winbounds); - is_hovering &= nk_window_has_focus(ui_ctx); -} + const struct nk_input *input = &ui_ctx->input; + struct nk_rect bounds = nk_widget_bounds(ui_ctx); + int is_hovering = nk_input_is_mouse_hovering_rect(input, bounds) && !ui_has_active_popups; + if( is_hovering ) { + struct nk_rect winbounds = nk_window_get_bounds(ui_ctx); + is_hovering &= nk_input_is_mouse_hovering_rect(input, winbounds); + is_hovering &= nk_window_has_focus(ui_ctx); + } - nk_label(ui_ctx, text_, align2); + nk_label(ui_ctx, text_, align2); -// this is an ugly hack to detect which icon (within a label) we're clicking on. -// @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? -ui_label_icon_clicked_R.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (align2 == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; + // this is an ugly hack to detect which icon (within a label) we're clicking on. + // @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? + ui_label_icon_clicked_R.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (align2 == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; return ui_label_icon_clicked_R.x; } @@ -336858,24 +337007,60 @@ int ui_toggle(const char *label, bool *value) { return rc ? (*value ^= 1), rc : rc; } -int ui_color4f(const char *label, float *color4) { - if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - - float c[4] = { color4[0]*255, color4[1]*255, color4[2]*255, color4[3]*255 }; - int ret = ui_color4(label, c); - for( int i = 0; i < 4; ++i ) color4[i] = c[i] / 255.0f; - return ret; -} - static enum color_mode {COL_RGB, COL_HSV} ui_color_mode = COL_RGB; -int ui_color4(const char *label, float *color4) { +int ui_color4f(const char *label, float *color) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - struct nk_colorf after = { color4[0]*ui_alpha/255, color4[1]*ui_alpha/255, color4[2]*ui_alpha/255, color4[3]/255 }, before = after; + struct nk_colorf after = { color[0]*ui_alpha, color[1]*ui_alpha, color[2]*ui_alpha, color[3] }, before = after; + struct nk_colorf clamped = { clampf(color[0],0,1), clampf(color[1],0,1), clampf(color[2],0,1), clampf(color[3],0,1) }; + if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(clamped), nk_vec2(200,400))) { + nk_layout_row_dynamic(ui_ctx, 120, 1); + after = nk_color_picker(ui_ctx, after, NK_RGB); + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_color_mode = nk_option_label(ui_ctx, "RGB", ui_color_mode == COL_RGB) ? COL_RGB : ui_color_mode; + ui_color_mode = nk_option_label(ui_ctx, "HSV", ui_color_mode == COL_HSV) ? COL_HSV : ui_color_mode; + + nk_layout_row_dynamic(ui_ctx, 0, 1); + if (ui_color_mode == COL_RGB) { + after.r = nk_propertyf(ui_ctx, "#R:", -FLT_MAX, after.r, FLT_MAX, 0.01f,0.005f); + after.g = nk_propertyf(ui_ctx, "#G:", -FLT_MAX, after.g, FLT_MAX, 0.01f,0.005f); + after.b = nk_propertyf(ui_ctx, "#B:", -FLT_MAX, after.b, FLT_MAX, 0.01f,0.005f); + } else { + float hsva[4]; + nk_colorf_hsva_fv(hsva, after); + hsva[0] = nk_propertyf(ui_ctx, "#H:", -FLT_MAX, hsva[0], FLT_MAX, 0.01f,0.005f); + hsva[1] = nk_propertyf(ui_ctx, "#S:", -FLT_MAX, hsva[1], FLT_MAX, 0.01f,0.005f); + hsva[2] = nk_propertyf(ui_ctx, "#V:", -FLT_MAX, hsva[2], FLT_MAX, 0.01f,0.005f); + after = nk_hsva_colorfv(hsva); + } + nk_label(ui_ctx, va("#%02X%02X%02X", (unsigned)clampf(after.r*255,0,255), (unsigned)clampf(after.g*255,0,255), (unsigned)clampf(after.b*255,0,255)), NK_TEXT_CENTERED); + + color[0] = after.r; + color[1] = after.g; + color[2] = after.b; + color[3] = after.a; + + nk_combo_end(ui_ctx); + } + return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); +} +int ui_color4(const char *label, unsigned *color) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + unsigned a = *color >> 24; + unsigned b =(*color >> 16)&255; + unsigned g =(*color >> 8)&255; + unsigned r = *color & 255; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + struct nk_colorf after = { r*ui_alpha/255, g*ui_alpha/255, b*ui_alpha/255, a*ui_alpha/255 }, before = after; if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(after), nk_vec2(200,400))) { nk_layout_row_dynamic(ui_ctx, 120, 1); after = nk_color_picker(ui_ctx, after, NK_RGBA); @@ -336886,44 +337071,83 @@ int ui_color4(const char *label, float *color4) { nk_layout_row_dynamic(ui_ctx, 0, 1); if (ui_color_mode == COL_RGB) { - after.r = nk_propertyf(ui_ctx, "#R:", 0, after.r, 1.0f, 0.01f,0.005f); - after.g = nk_propertyf(ui_ctx, "#G:", 0, after.g, 1.0f, 0.01f,0.005f); - after.b = nk_propertyf(ui_ctx, "#B:", 0, after.b, 1.0f, 0.01f,0.005f); - after.a = nk_propertyf(ui_ctx, "#A:", 0, after.a, 1.0f, 0.01f,0.005f); + after.r = nk_propertyi(ui_ctx, "#R:", 0, after.r * 255, 255, 1,1) / 255.f; + after.g = nk_propertyi(ui_ctx, "#G:", 0, after.g * 255, 255, 1,1) / 255.f; + after.b = nk_propertyi(ui_ctx, "#B:", 0, after.b * 255, 255, 1,1) / 255.f; + after.a = nk_propertyi(ui_ctx, "#A:", 0, after.a * 255, 255, 1,1) / 255.f; } else { float hsva[4]; nk_colorf_hsva_fv(hsva, after); - hsva[0] = nk_propertyf(ui_ctx, "#H:", 0, hsva[0], 1.0f, 0.01f,0.05f); - hsva[1] = nk_propertyf(ui_ctx, "#S:", 0, hsva[1], 1.0f, 0.01f,0.05f); - hsva[2] = nk_propertyf(ui_ctx, "#V:", 0, hsva[2], 1.0f, 0.01f,0.05f); - hsva[3] = nk_propertyf(ui_ctx, "#A:", 0, hsva[3], 1.0f, 0.01f,0.05f); + hsva[0] = nk_propertyi(ui_ctx, "#H:", 0, hsva[0] * 255, 255, 1,1) / 255.f; + hsva[1] = nk_propertyi(ui_ctx, "#S:", 0, hsva[1] * 255, 255, 1,1) / 255.f; + hsva[2] = nk_propertyi(ui_ctx, "#V:", 0, hsva[2] * 255, 255, 1,1) / 255.f; + hsva[3] = nk_propertyi(ui_ctx, "#A:", 0, hsva[3] * 255, 255, 1,1) / 255.f; after = nk_hsva_colorfv(hsva); } + r = after.r * 255; + g = after.g * 255; + b = after.b * 255; + a = after.a * 255; + *color = rgba(r,g,b,a); - color4[0] = after.r * 255; - color4[1] = after.g * 255; - color4[2] = after.b * 255; - color4[3] = after.a * 255; + nk_label(ui_ctx, va("#%02X%02X%02X%02X", r, g, b, a), NK_TEXT_CENTERED); nk_combo_end(ui_ctx); } return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); } -int ui_color3f(const char *label, float *color3) { - float c[3] = { color3[0]*255, color3[1]*255, color3[2]*255 }; - int ret = ui_color3(label, c); - for( int i = 0; i < 3; ++i ) color3[i] = c[i] / 255.0f; - return ret; -} - -int ui_color3(const char *label, float *color3) { +int ui_color3f(const char *label, float *color) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - struct nk_colorf after = { color3[0]*ui_alpha/255, color3[1]*ui_alpha/255, color3[2]*ui_alpha/255, 1 }, before = after; + struct nk_colorf after = { color[0]*ui_alpha, color[1]*ui_alpha, color[2]*ui_alpha, ui_alpha }, before = after; + struct nk_colorf clamped = { clampf(color[0],0,1), clampf(color[1],0,1), clampf(color[2],0,1), 1 }; + if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(clamped), nk_vec2(200,400))) { + nk_layout_row_dynamic(ui_ctx, 120, 1); + after = nk_color_picker(ui_ctx, after, NK_RGB); + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_color_mode = nk_option_label(ui_ctx, "RGB", ui_color_mode == COL_RGB) ? COL_RGB : ui_color_mode; + ui_color_mode = nk_option_label(ui_ctx, "HSV", ui_color_mode == COL_HSV) ? COL_HSV : ui_color_mode; + + nk_layout_row_dynamic(ui_ctx, 0, 1); + if (ui_color_mode == COL_RGB) { + after.r = nk_propertyf(ui_ctx, "#R:", -FLT_MAX, after.r, FLT_MAX, 0.01f,0.005f); + after.g = nk_propertyf(ui_ctx, "#G:", -FLT_MAX, after.g, FLT_MAX, 0.01f,0.005f); + after.b = nk_propertyf(ui_ctx, "#B:", -FLT_MAX, after.b, FLT_MAX, 0.01f,0.005f); + } else { + float hsva[4]; + nk_colorf_hsva_fv(hsva, after); + hsva[0] = nk_propertyf(ui_ctx, "#H:", -FLT_MAX, hsva[0], FLT_MAX, 0.01f,0.005f); + hsva[1] = nk_propertyf(ui_ctx, "#S:", -FLT_MAX, hsva[1], FLT_MAX, 0.01f,0.005f); + hsva[2] = nk_propertyf(ui_ctx, "#V:", -FLT_MAX, hsva[2], FLT_MAX, 0.01f,0.005f); + after = nk_hsva_colorfv(hsva); + } + nk_label(ui_ctx, va("#%02X%02X%02X", (unsigned)clampf(after.r*255,0,255), (unsigned)clampf(after.g*255,0,255), (unsigned)clampf(after.b*255,0,255)), NK_TEXT_CENTERED); + + color[0] = after.r; + color[1] = after.g; + color[2] = after.b; + + nk_combo_end(ui_ctx); + } + return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); +} +int ui_color3(const char *label, unsigned *color) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + unsigned a = *color >> 24; + unsigned b =(*color >> 16)&255; + unsigned g =(*color >> 8)&255; + unsigned r = *color & 255; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + struct nk_colorf after = { r*ui_alpha, g*ui_alpha, b*ui_alpha, 1 }, before = after; if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(after), nk_vec2(200,400))) { nk_layout_row_dynamic(ui_ctx, 120, 1); after = nk_color_picker(ui_ctx, after, NK_RGB); @@ -336934,21 +337158,23 @@ int ui_color3(const char *label, float *color3) { nk_layout_row_dynamic(ui_ctx, 0, 1); if (ui_color_mode == COL_RGB) { - after.r = nk_propertyf(ui_ctx, "#R:", 0, after.r, 1.0f, 0.01f,0.005f); - after.g = nk_propertyf(ui_ctx, "#G:", 0, after.g, 1.0f, 0.01f,0.005f); - after.b = nk_propertyf(ui_ctx, "#B:", 0, after.b, 1.0f, 0.01f,0.005f); + after.r = nk_propertyi(ui_ctx, "#R:", 0, after.r * 255, 255, 1,1) / 255.f; + after.g = nk_propertyi(ui_ctx, "#G:", 0, after.g * 255, 255, 1,1) / 255.f; + after.b = nk_propertyi(ui_ctx, "#B:", 0, after.b * 255, 255, 1,1) / 255.f; } else { float hsva[4]; nk_colorf_hsva_fv(hsva, after); - hsva[0] = nk_propertyf(ui_ctx, "#H:", 0, hsva[0], 1.0f, 0.01f,0.05f); - hsva[1] = nk_propertyf(ui_ctx, "#S:", 0, hsva[1], 1.0f, 0.01f,0.05f); - hsva[2] = nk_propertyf(ui_ctx, "#V:", 0, hsva[2], 1.0f, 0.01f,0.05f); + hsva[0] = nk_propertyi(ui_ctx, "#H:", 0, hsva[0] * 255, 255, 1,1) / 255.f; + hsva[1] = nk_propertyi(ui_ctx, "#S:", 0, hsva[1] * 255, 255, 1,1) / 255.f; + hsva[2] = nk_propertyi(ui_ctx, "#V:", 0, hsva[2] * 255, 255, 1,1) / 255.f; after = nk_hsva_colorfv(hsva); } + r = after.r * 255; + g = after.g * 255; + b = after.b * 255; + *color = rgba(r,g,b,a); - color3[0] = after.r * 255; - color3[1] = after.g * 255; - color3[2] = after.b * 255; + nk_label(ui_ctx, va("#%02X%02X%02X", r, g, b), NK_TEXT_CENTERED); nk_combo_end(ui_ctx); } @@ -337021,6 +337247,8 @@ int ui_bool(const char *label, bool *enabled ) { return chg; } +static int ui_num_signs = 0; + int ui_int(const char *label, int *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; @@ -337042,6 +337270,45 @@ int ui_unsigned(const char *label, unsigned *v) { *v = (unsigned)nk_propertyd(ui_ctx, "#", 0, *v, UINT_MAX, 1,1); return prev != *v; } +int ui_unsigned2(const char *label, unsigned *v) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+2u %+2u", v[0], v[1]) : + va("%2u, %2u", v[0], v[1]); + + if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { + nk_layout_row_dynamic(ui_ctx, 0, 1); + unsigned prev0 = v[0]; nk_property_int(ui_ctx, "#X:", 0, &v[0], INT_MAX, 1,0.5f); + unsigned prev1 = v[1]; nk_property_int(ui_ctx, "#Y:", 0, &v[1], INT_MAX, 1,0.5f); + nk_combo_end(ui_ctx); + return prev0 != v[0] || prev1 != v[1]; + } + return 0; +} +int ui_unsigned3(const char *label, unsigned *v) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+2u %+2u %+2u", v[0], v[1], v[2]) : + va("%2u, %2u, %2u", v[0], v[1], v[2]); + + if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { + nk_layout_row_dynamic(ui_ctx, 0, 1); + unsigned prev0 = v[0]; nk_property_int(ui_ctx, "#X:", 0, &v[0], INT_MAX, 1,0.5f); + unsigned prev1 = v[1]; nk_property_int(ui_ctx, "#Y:", 0, &v[1], INT_MAX, 1,0.5f); + unsigned prev2 = v[2]; nk_property_int(ui_ctx, "#Z:", 0, &v[2], INT_MAX, 1,0.5f); + nk_combo_end(ui_ctx); + return prev0 != v[0] || prev1 != v[1] || prev2 != v[2]; + } + return 0; +} int ui_short(const char *label, short *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; @@ -337082,16 +337349,14 @@ int ui_clampf(const char *label, float *v, float minf, float maxf) { return prev != v[0]; } -static bool ui_float_sign = 0; - int ui_float2(const char *label, float *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.3f %+.3f", v[0], v[1]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.3f %+.3f", v[0], v[1]) : va("%.3f, %.3f", v[0], v[1]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -337110,8 +337375,8 @@ int ui_float3(const char *label, float *v) { nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.2f %+.2f %+.2f", v[0], v[1], v[2]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.2f %+.2f %+.2f", v[0], v[1], v[2]) : va("%.2f, %.2f, %.2f", v[0], v[1], v[2]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -337131,8 +337396,8 @@ int ui_float4(const char *label, float *v) { nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.2f %+.2f %+.2f %+.2f", v[0], v[1], v[2], v[3]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.2f %+.2f %+.2f %+.2f", v[0], v[1], v[2], v[3]) : va("%.2f,%.2f,%.2f,%.2f", v[0], v[1], v[2], v[3]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -337151,7 +337416,7 @@ int ui_float4(const char *label, float *v) { int ui_mat33(const char *label, float M[9]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 3; + ui_num_signs = 3; int changed = 0; changed |= ui_label(label); changed |= ui_float3(NULL, M); @@ -337162,7 +337427,7 @@ int ui_mat33(const char *label, float M[9]) { int ui_mat34(const char *label, float M[12]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 3; + ui_num_signs = 3; int changed = 0; changed |= ui_label(label); changed |= ui_float4(NULL, M); @@ -337173,7 +337438,7 @@ int ui_mat34(const char *label, float M[12]) { int ui_mat44(const char *label, float M[16]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 4; + ui_num_signs = 4; int changed = 0; changed |= ui_label(label); changed |= ui_float4(NULL, M); @@ -337418,7 +337683,7 @@ int ui_browse(const char **output, bool *inlined) { const int W = 96, H = 96; // 2048x481 px, 21x5 cells texture_t i = texture("icons/suru.png", TEXTURE_RGBA|TEXTURE_MIPMAPS); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 16, 3), BROWSER_FOLDER); // default group - browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 2, 4), BROWSER_HOME); + browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 2, 4), BROWSER_HOME); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 17, 3), BROWSER_COMPUTER); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 1, 4), BROWSER_PROJECT); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 0, 4), BROWSER_DESKTOP); @@ -337670,7 +337935,7 @@ int ui_demo(int do_windows) { struct nk_window *win = nk_window_find(ui_ctx, title); if( win ) { enum { menubar_height = 65 }; // title bar (~32) + menu bounds (~25) - struct nk_rect bounds = win->bounds; bounds.y += menubar_height; bounds.h -= menubar_height; + struct nk_rect bounds = win->bounds; bounds.y += menubar_height; bounds.h -= menubar_height; #if 1 ddraw_flush(); @@ -337718,7 +337983,7 @@ static AudioUnit midi_out_handle = 0; static void midi_init() { #if is(win32) && !is(gcc) if( midiOutGetNumDevs() != 0 ) { - midiOutOpen(&midi_out_handle, 0, 0, 0, 0); + midiOutOpen(&midi_out_handle, 0, 0, 0, 0); } #elif is(osx) AUGraph graph; @@ -337997,17 +338262,17 @@ int audio_init( int flags ) { ma_backend_wasapi, // WASAPI | Windows Vista+ ma_backend_dsound, // DirectSound | Windows XP+ ma_backend_winmm, // WinMM | Windows XP+ (may work on older versions, but untested) - ma_backend_coreaudio, // Core Audio | macOS, iOS + ma_backend_coreaudio, // Core Audio | macOS, iOS ma_backend_pulseaudio, // PulseAudio | Cross Platform (disabled on Windows, BSD and Android) - ma_backend_alsa, // ALSA | Linux - ma_backend_oss, // OSS | FreeBSD + ma_backend_alsa, // ALSA | Linux + ma_backend_oss, // OSS | FreeBSD ma_backend_jack, // JACK | Cross Platform (disabled on BSD and Android) ma_backend_opensl, // OpenSL ES | Android (API level 16+) ma_backend_webaudio, // Web Audio | Web (via Emscripten) - ma_backend_sndio, // sndio | OpenBSD - ma_backend_audio4, // audio(4) | NetBSD, OpenBSD + ma_backend_sndio, // sndio | OpenBSD + ma_backend_audio4, // audio(4) | NetBSD, OpenBSD ma_backend_aaudio, // AAudio | Android 8+ - ma_backend_custom, // Custom | Cross Platform + ma_backend_custom, // Custom | Cross Platform ma_backend_null, // Null | Cross Platform (not used on Web) // Lowest priority #endif @@ -339750,12 +340015,13 @@ typedef struct cook_subscript_t { char *script; char *outname; int compress_level; + uint64_t pass_ns, gen_ns, exe_ns, zip_ns; } cook_subscript_t; typedef struct cook_script_t { cook_subscript_t cs[8]; - int num_passes; + uint64_t pass_ns, gen_ns, exe_ns, zip_ns; } cook_script_t; static @@ -339769,6 +340035,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out // - if no script is going to be generated, output is in fact input file. // - no compression is going to be required. cook_subscript_t cs = { 0 }; + cs.gen_ns -= time_ns(); // reuse script heap from last call if possible (optimization) static __thread char *script = 0; @@ -339781,6 +340048,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out map_clear(symbols); map_clear(groups); + map_find_or_add(symbols, "INFILE", STRDUP(infile)); map_find_or_add(symbols, "INPUT", STRDUP(infile)); map_find_or_add(symbols, "PRETTY", STRDUP(infile + ART_SKIP_ROOT)); // pretty (truncated) input (C:/prj/V4K/art/file.wav -> file.wav) @@ -339832,10 +340100,15 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } lines[i] = line = nl; +#if 0 static thread_mutex_t lock, *init = 0; if(!init) thread_mutex_init(init = &lock); thread_mutex_lock( &lock ); system(line); // strcatf(&script, "%s\n", line); thread_mutex_unlock( &lock ); +#else + // append line + strcatf(&script, "%s\n", line); +#endif continue; } @@ -339983,15 +340256,15 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } } char *compression = 0; - for each_map(groups, char*, key, char*, val) { - if( isdigit(key[0]) ) { + for each_map_ptr_sorted(groups, char*, key, char*, val) { // sorted iteration, so hopefully '0' no compression gets evaluated first + if( !compression && isdigit((*key)[0]) ) { char *comma = va(",%s,", ext); - if( !strcmpi(val,ext) || strbegi(val, comma+1) || strstri(val, comma) || strendi(val, va(",%s", ext))) { - compression = key; + if( !strcmpi(*val,ext) || strbegi(*val, comma+1) || strstri(*val, comma) || strendi(*val, va(",%s", ext))) { + compression = (*key); } comma = va(",%s,", belongs_to); - if( !strcmpi(val,ext) || strbegi(val, comma+1) || strstri(val, comma) || strendi(val, va(",%s", ext))) { - compression = key; + if( !strcmpi(*val,ext) || strbegi(*val, comma+1) || strstri(*val, comma) || strendi(*val, va(",%s", ext))) { + compression = (*key); } } } @@ -340051,6 +340324,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } cs.outname = cs.outname ? cs.outname : (char*)infile; + cs.gen_ns += time_ns(); ASSERT(mcs.num_passes < countof(mcs.cs)); mcs.cs[mcs.num_passes++] = cs; @@ -340082,8 +340356,8 @@ array(struct fs) zipscan_filter(int threadid, int numthreads) { array(struct fs) fs = 0; for( int i = 0, end = array_count(fs_now); i < end; ++i ) { // during workload distribution, we assign random files to specific thread buckets. - // we achieve this by hashing the basename of the file. we used to hash also the path - // long time ago but that is less resilient to file relocations across the repository. + // we achieve this by hashing the basename of the file. we used to hash also the path + // long time ago but that is less resilient to file relocations across the repository. // excluding the file extension from the hash also helps from external file conversions. char *fname = file_name(fs_now[i].fname); char *sign = strrchr(fname, '@'); if(sign) *sign = '\0'; // special char (multi-pass cooks) @@ -340182,6 +340456,11 @@ int cook(void *userdata) { volatile int *progress = &job->progress; *progress = 0; + // preload a few large binaries +// dll("tools/furnace.exe", 0); +// dll("tools/assimp-vc143-mt.dll", 0); +// dll("tools/ffmpeg.exe", 0); + // scan disk from fs_now snapshot array(struct fs) filtered = zipscan_filter(job->threadid, job->numthreads); //printf("Scanned: %d items found\n", array_count(now)); @@ -340220,6 +340499,13 @@ int cook(void *userdata) { zip_append_file/*_timeinfo*/(z, deleted[i], comment, in, 0/*, tm_now*/); fclose(in); } + + // generate cook metrics. you usually do `game.exe --cook-stats && (type *.csv | sort /R > cook.csv)` + static __thread FILE *statsfile = 0; + if(flag("--cook-stats")) + fseek(statsfile = fopen(va("cook%d.csv",job->threadid), "a+t"), 0L, SEEK_END); + if(statsfile && ftell(statsfile) == 0) fprintf(statsfile,"%10s,%10s,%10s,%10s,%10s, %s\n","+total_ms","gen_ms","exe_ms","zip_ms","pass","file"); + // added or changed files for( int i = 0, end = array_count(uncooked); i < end && !cook_cancelling; ++i ) { *progress = ((i+1) == end ? 90 : (i * 90) / end); // (i+i>0) * 100.f / end; @@ -340246,43 +340532,46 @@ int cook(void *userdata) { } } - // invoke cooking script and recap status - const char *rc_output = app_exec(cs.script); - int rc = atoi(rc_output); - int outlen = file_size(cs.outfile); - int failed = cs.script[0] ? rc || !outlen : 0; - - // print errors - if( failed ) { - PRINTF("Import failed: %s while executing:\n%s\nReturned:\n%s\n", cs.outname, cs.script, rc_output); - continue; - } - - // special char (multi-pass cook). newly generated file: refresh values - // ensure newly created files by cook are also present on repo/disc for further cook passes - if( pass > 0 ) { // && strchr(cs.outname, '@') ) { // pass>0 is a small optimization // special char (multi-pass cooks) - file_delete(cs.outname); - file_move(cs.outfile, cs.outname); - inlen = file_size(infile = cs.outfile = cs.outname); - } + // invoke cooking script + mcs.cs[pass].exe_ns -= time_ns(); + // invoke cooking script + const char *rc_output = app_exec(cs.script); + // recap status + int rc = atoi(rc_output); + // int outlen = file_size(cs.outfile); + int failed = rc; // cs.script[0] ? rc || !outlen : 0; + // print errors + if( failed ) { + PRINTF("Import failed: %s while executing:\n%s\nReturned:\n%s\n", cs.outname, cs.script, rc_output); + continue; + } + if( pass > 0 ) { // (multi-pass cook) + // newly generated file: refresh values + // ensure newly created files by cook are also present on repo/disc for further cook passes + file_delete(cs.outname); + file_move(cs.outfile, cs.outname); + inlen = file_size(infile = cs.outfile = cs.outname); + } + mcs.cs[pass].exe_ns += time_ns(); // process only if included. may include optional compression. + mcs.cs[pass].zip_ns -= time_ns(); if( cs.compress_level >= 0 ) { - FILE *in = fopen(cs.outfile, "rb"); - -#if 0 - struct stat st; stat(infile, &st); - struct tm *timeinfo = localtime(&st.st_mtime); - ASSERT(timeinfo); -#endif + FILE *in = fopen(cs.outfile ? cs.outfile : infile, "rb"); + if(!in) in = fopen(infile, "rb"); char *comment = va("%d", inlen); - if( !zip_append_file/*_timeinfo*/(z, infile, comment, in, cs.compress_level/*, timeinfo*/) ) { + if( !zip_append_file(z, infile, comment, in, cs.compress_level) ) { PANIC("failed to add processed file into %s: %s(%s)", zipfile, cs.outname, infile); } fclose(in); } + mcs.cs[pass].zip_ns += time_ns(); + + // stats per subscript + mcs.cs[pass].pass_ns = mcs.cs[pass].gen_ns + mcs.cs[pass].exe_ns + mcs.cs[pass].zip_ns; + if(statsfile) fprintf(statsfile, "%10.f,%10.f,%10.f,%10.f,%10d, \"%s\"\n", mcs.cs[pass].pass_ns/1e6, mcs.cs[pass].gen_ns/1e6, mcs.cs[pass].exe_ns/1e6, mcs.cs[pass].zip_ns/1e6, pass+1, infile); } } @@ -340311,13 +340600,13 @@ int cook_async( void *userdata ) { // tcc: only a single running thread shall pass, because of racing shared state due to missing thread_local support at compiler level ifdef(tcc, thread_mutex_lock( job->lock )); - ifdef(osx, thread_mutex_lock( job->lock )); + ifdef(osx, thread_mutex_lock( job->lock )); // @todo: remove silicon mac M1 hack int ret = cook(userdata); // tcc: only a single running thread shall pass, because of racing shared state due to missing thread_local support at compiler level + ifdef(osx, thread_mutex_unlock( job->lock )); // @todo: remove silicon mac M1 hack ifdef(tcc, thread_mutex_unlock( job->lock )); - ifdef(osx, thread_mutex_unlock( job->lock )); thread_exit( ret ); return ret; @@ -340340,7 +340629,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { HOME[ strlen(HOME) - strlen(file_name(cook_ini)) ] = '\0'; // -> tools/ @leak #endif - ART_LEN = 0; //strlen(app_path()); + ART_LEN = 0; //strlen(app_path()); /* = MAX_PATH; for each_substring(ART, ",", art_folder) { ART_LEN = mini(ART_LEN, strlen(art_folder)); @@ -340396,6 +340685,14 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { EDITOR = out; // @leak assert( EDITOR[strlen(EDITOR) - 1] == '/' ); } + + // small optimization for upcoming parser: remove whole comments from file + array(char*) lines = strsplit(rules, "\r\n"); + for( int i = 0; i < array_count(lines); ) { + if( lines[i][0] == ';' ) array_erase_slow(lines, i); + else ++i; + } + rules = STRDUP( strjoin(lines, "\n") ); } if( !masks ) { @@ -340442,7 +340739,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { if( strend(fname, ".obj") ) { char header[4] = {0}; for( FILE *in = fopen(fname, "rb"); in; fclose(in), in = NULL) { - fread(header, 1, 2, in); + fread(header, 2, 1, in); } if( !memcmp(header, "\x64\x86", 2) ) continue; if( !memcmp(header, "\x00\x00", 2) ) continue; @@ -340454,7 +340751,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { snprintf(extdot, 32, "%s.", dot); // .png -> .png. // exclude vc/gcc/clang files if( strstr(fname, ".a.o.pdb.lib.ilk.exp.dSYM.") ) // must end with dot - continue; + continue; } // @todo: normalize path & rebase here (absolute to local) @@ -340478,7 +340775,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { fi.stamp = file_stamp10(fname); // timestamp in base10(yyyymmddhhmmss) array_push(fs_now, fi); - } + } cook_debug = !!( flags & COOK_DEBUGLOG ); cook_cancelable = !!( flags & COOK_CANCELABLE ); @@ -340553,79 +340850,6 @@ bool have_tools() { #line 1 "engine/split/v4k_data.c" -static -array(char) base64__decode(const char *in_, unsigned inlen) { - // from libtomcrypt - #define BASE64_ENCODE_OUT_SIZE(s) (((s) + 2) / 3 * 4) - #define BASE64_DECODE_OUT_SIZE(s) (((s)) / 4 * 3) - -#if 1 - unsigned long outlen = BASE64_DECODE_OUT_SIZE(inlen); - array(char) out_ = 0; array_resize(out_, outlen); - - if( base64_decode((const unsigned char *)in_, (unsigned long)inlen, (unsigned char *)out_, &outlen) != CRYPT_OK ) { - array_free(out_); - return 0; - } - - array_resize(out_, outlen); - return out_; -#else - unsigned outlen = BASE64_DECODE_OUT_SIZE(inlen); - array(char) out_ = 0; array_resize(out_, outlen); - - // based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN) - uint_least32_t v; - unsigned ii, io, rem; - char *out = (char *)out_; - const unsigned char *in = (const unsigned char *)in_; - const uint8_t base64dec_tab[256]= { - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255, 62,255,255, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255, 0,255,255, - 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255, 63, - 255, 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,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - }; - - for (io = 0, ii = 0,v = 0, rem = 0; ii < inlen; ii ++) { - unsigned char ch; - if (isspace(in[ii])) - continue; - if ((in[ii]=='=') || (!in[ii])) - break; /* stop at = or null character*/ - ch = base64dec_tab[(unsigned char)in[ii]]; - if (ch == 255) - break; /* stop at a parse error */ - v = (v<<6) | ch; - rem += 6; - if (rem >= 8) { - rem -= 8; - if (io >= outlen) - return (array_free(out_), NULL); /* truncation is failure */ - out[io ++] = (v >> rem) & 255; - } - } - if (rem >= 8) { - rem -= 8; - if (io >= outlen) - return (array_free(out_), NULL); /* truncation is failure */ - out[io ++] = (v >> rem) & 255; - } - return (array_resize(out_, io), out_); -#endif -} - static array(json5) roots; static array(char*) sources; @@ -340761,7 +340985,7 @@ static void *xml_path(struct xml *node, char *path, int down) { // Find the first sibling with the given tag name (may be the same node) struct xml *next = down ? xml_find_down(node, tag) : xml_find(node, tag); return xml_path(next, &path[ sep ], 1); - } + } } if( type == '$' ) { return (void*)( node->down ? xml_text( node->down ) : xml_tag( node ) ); @@ -340790,7 +341014,7 @@ unsigned (xml_count)(char *key) { if( !node ) return 0; const char *tag = xml_tag(node); unsigned count = 1; - while( (node = xml_find_next(node, tag)) != 0) ++count; + while( (node = xml_find_next(node, tag)) != 0) ++count; return count; } array(char) (xml_blob)(char *key) { // base64 blob @@ -340798,7 +341022,7 @@ array(char) (xml_blob)(char *key) { // base64 blob if( !node ) return 0; if( !strchr(key, '$') ) return 0; const char *data = (const char*)node; - array(char) out = base64__decode(data, strlen(data)); // either array of chars (ok) or null (error) + array(char) out = base64_decode(data, strlen(data)); // either array of chars (ok) or null (error) return out; } @@ -340880,7 +341104,7 @@ void* dll(const char *fname, const char *symbol) { fname = (const char *)buf; } else { return NULL; - } + } } #if is(win32) return (void*)GetProcAddress(fname ? LoadLibraryA(fname) : GetModuleHandleA(NULL), symbol); @@ -341369,29 +341593,29 @@ array(char*) file_list(const char *pathmasks) { ASSERT(strend(cwd, "/"), "Error: dirs like '%s' must end with slash", cwd); - dir *d = dir_open(cwd, strstr(masks,"**") ? "r" : ""); - if( d ) { - for( int i = 0; i < dir_count(d); ++i ) { - if( dir_file(d,i) ) { - // dir_name() should return full normalized paths "C:/prj/v4k/demos/art/fx/fxBloom.fs". should exclude system dirs as well - char *entry = dir_name(d,i); - char *fname = file_name(entry); + dir *d = dir_open(cwd, strstr(masks,"**") ? "r" : ""); + if( d ) { + for( int i = 0; i < dir_count(d); ++i ) { + if( dir_file(d,i) ) { + // dir_name() should return full normalized paths "C:/prj/v4k/demos/art/fx/fxBloom.fs". should exclude system dirs as well + char *entry = dir_name(d,i); + char *fname = file_name(entry); - int allowed = 0; - for each_substring(masks,";",mask) { - allowed |= strmatch(fname, mask); + int allowed = 0; + for each_substring(masks,";",mask) { + allowed |= strmatch(fname, mask); + } + if( !allowed ) continue; + + // if( strstr(fname, "/.") ) continue; // @fixme: still needed? useful? + + // insert copy + char *copy = STRDUP(entry); + array_push(list, copy); } - if( !allowed ) continue; - - // if( strstr(fname, "/.") ) continue; // @fixme: still needed? useful? - - // insert copy - char *copy = STRDUP(entry); - array_push(list, copy); } + dir_close(d); } - dir_close(d); - } } array_sort(list, strcmp); @@ -341443,7 +341667,7 @@ char *file_counter(const char *name) { static __thread map(char*, int) ext_counters; if(!init) map_init(ext_counters, less_str, hash_str), init = '\1'; - char *base = va("%s",name), *ext = file_ext(name); + char *base = va("%s",name), *ext = file_ext(name); if(ext && ext[0]) *strstr(base, ext) = '\0'; int *counter = map_find_or_add(ext_counters, ext, 0); @@ -341466,7 +341690,7 @@ void* file_sha1(const char *file) { // 20bytes sha1_init(&hs); for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { sha1_process(&hs, (const unsigned char *)buf, inlen); } } @@ -341480,7 +341704,7 @@ void* file_md5(const char *file) { // 16bytes md5_init(&hs); for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { md5_process(&hs, (const unsigned char *)buf, inlen); } } @@ -341493,7 +341717,7 @@ void* file_crc32(const char *file) { // 4bytes unsigned crc = 0; for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { crc = zip__crc32(crc, buf, inlen); // unsigned int stbiw__crc32(unsigned char *buffer, int len) } } @@ -341714,7 +341938,7 @@ typedef struct archive_dir { } archive_dir; static archive_dir *dir_mount; -static archive_dir *dir_cache; +static archive_dir *dir_cache; #ifndef MAX_CACHED_FILES // @todo: should this be MAX_CACHED_SIZE (in MiB) instead? #define MAX_CACHED_FILES 32 // @todo: should we cache the cooked contents instead? ie, stbi() result instead of file.png? @@ -341763,7 +341987,7 @@ void vfs_reload() { #define ARK_SWAP32(x) (x) #define ARK_SWAP64(x) (x) #define ARK_REALLOC REALLOC -static uint64_t ark_fget64( FILE *in ) { uint64_t v; fread( &v, 1, 8, in ); return ARK_SWAP64(v); } +static uint64_t ark_fget64( FILE *in ) { uint64_t v; fread( &v, 8, 1, in ); return ARK_SWAP64(v); } void ark_list( const char *infile, zip **z ) { for( FILE *in = fopen(infile, "rb"); in; fclose(in), in = 0 ) while(!feof(in)) { @@ -341937,13 +342161,13 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u while( pathfile[0] == '.' && (pathfile[1] == '/' || pathfile[1] == '\\') ) pathfile += 2; // if (pathfile[0] == '/' || pathfile[1] == ':') return file_load(pathfile, size_out); // @fixme: handle current cooked /home/V4K or C:/V4K path cases within zipfiles - if( size_out ) *size_out = 0; - if( strend(pathfile, "/") ) return 0; // it's a dir - static __thread map(char*,int) misses = 0, *init = 0; if(!init) init = misses, map_init(misses, less_str, hash_str); - int *found = map_find_or_add_allocated_key(misses, STRDUP(pathfile), -1); // [-1]non-init,[false]could not cook,[true]cooked - if( found && *found == 0 ) { - return 0; - } +if( size_out ) *size_out = 0; +if( strend(pathfile, "/") ) return 0; // it's a dir +static __thread map(char*,int) misses = 0, *init = 0; if(!init) init = misses, map_init(misses, less_str, hash_str); +int *found = map_find_or_add_allocated_key(misses, STRDUP(pathfile), -1); // [-1]non-init,[false]could not cook,[true]cooked +if( found && *found == 0 ) { + return 0; +} //{ // exclude garbage from material names @@ -341989,7 +342213,7 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u } // search (cache) - if( !ptr && ! is(osx) ) { + if( !ptr && !is(osx) ) { // @todo: remove silicon mac M1 hack ptr = cache_lookup(lookup_id, &size); } @@ -342032,7 +342256,7 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u char *cmd = va("%scook" ifdef(osx,".osx",ifdef(linux,".linux",".exe"))" %s %s --cook-ini=%s --cook-additive --cook-jobs=1 --quiet", TOOLS, group1, group2, COOK_INI); // cook groups - int rc = system(cmd); + int rc = atoi(app_exec(cmd)); if(rc < 0) PANIC("cannot invoke `%scook` (return code %d)", TOOLS, rc); vfs_reload(); // @todo: optimize me. it is waaay inefficent to reload the whole VFS layout after cooking a single asset @@ -342147,33 +342371,33 @@ void* cache_insert(const char *pathfile, void *ptr, int size) { // append key/va // keep cached files within limits thread_mutex_lock(&cache_mutex); - // append to cache - archive_dir zero = {0}, *old = dir_cache; - *(dir_cache = REALLOC(0, sizeof(archive_dir))) = zero; - dir_cache->next = old; - dir_cache->path = STRDUP(pathfile); - dir_cache->size = size; - dir_cache->data = REALLOC(0, size+1); - memcpy(dir_cache->data, ptr, size); size[(char*)dir_cache->data] = 0; // copy+terminator + // append to cache + archive_dir zero = {0}, *old = dir_cache; + *(dir_cache = REALLOC(0, sizeof(archive_dir))) = zero; + dir_cache->next = old; + dir_cache->path = STRDUP(pathfile); + dir_cache->size = size; + dir_cache->data = REALLOC(0, size+1); + memcpy(dir_cache->data, ptr, size); size[(char*)dir_cache->data] = 0; // copy+terminator void *found = 0; - static int added = 0; - if( added < MAX_CACHED_FILES ) { - ++added; - } else { - // remove oldest cache entry - for( archive_dir *prev = dir_cache, *dir = prev; dir ; prev = dir, dir = dir->next ) { - if( !dir->next ) { - prev->next = 0; // break link + static int added = 0; + if( added < MAX_CACHED_FILES ) { + ++added; + } else { + // remove oldest cache entry + for( archive_dir *prev = dir_cache, *dir = prev; dir ; prev = dir, dir = dir->next ) { + if( !dir->next ) { + prev->next = 0; // break link found = dir->data; - dir->path = REALLOC(dir->path, 0); - dir->data = REALLOC(dir->data, 0); - dir = REALLOC(dir, 0); + dir->path = REALLOC(dir->path, 0); + dir->data = REALLOC(dir->data, 0); + dir = REALLOC(dir, 0); break; + } } } - } thread_mutex_unlock(&cache_mutex); @@ -342274,7 +342498,9 @@ ini_t ini_from_mem(const char *data) { } ini_t ini(const char *filename) { - return ini_from_mem(file_read(filename)); + char *kv = file_read(filename); + if(!kv) kv = vfs_read(filename); + return ini_from_mem(kv); } bool ini_write(const char *filename, const char *section, const char *key, const char *value) { @@ -343966,7 +344192,6 @@ void font_scales(const char *tag, float h1, float h2, float h3, float h4, float // 1. Calculate and save a bunch of useful variables and put them in the global font variable. void font_face_from_mem(const char *tag, const void *ttf_data, unsigned ttf_len, float font_size, unsigned flags) { unsigned index = *tag - FONT_FACE1[0]; - if( index >= 8 ) return; if( font_size <= 0 || font_size > 72 ) return; if( !ttf_data || !ttf_len ) return; @@ -345311,15 +345536,15 @@ bool input_touch_active() { #endif // !is(ems) int ui_mouse() { - ui_label2_float("X", input(MOUSE_X)); - ui_label2_float("Y", input(MOUSE_Y)); - ui_label2_float("Wheel", input(MOUSE_W)); - ui_separator(); - ui_label2_bool("Left", input(MOUSE_L)); - ui_label2_bool("Middle", input(MOUSE_M)); - ui_label2_bool("Right", input(MOUSE_R)); - ui_separator(); - for( int i = 0; i <= CURSOR_SW_AUTO; ++i ) if(ui_button(va("Cursor shape #%d", i))) window_cursor_shape(i); + ui_label2_float("X", input(MOUSE_X)); + ui_label2_float("Y", input(MOUSE_Y)); + ui_label2_float("Wheel", input(MOUSE_W)); + ui_separator(); + ui_label2_bool("Left", input(MOUSE_L)); + ui_label2_bool("Middle", input(MOUSE_M)); + ui_label2_bool("Right", input(MOUSE_R)); + ui_separator(); + for( int i = 0; i <= CURSOR_SW_AUTO; ++i ) if(ui_button(va("Cursor shape #%d", i))) window_cursor_shape(i); return 0; } @@ -345358,7 +345583,7 @@ int ui_keyboard() { } int ui_gamepad(int gamepad_id) { - input_use(gamepad_id); + input_use(gamepad_id); bool connected = !!input(GAMEPAD_CONNECTED); @@ -345366,48 +345591,48 @@ int ui_gamepad(int gamepad_id) { if( !connected ) ui_disable(); - ui_separator(); + ui_separator(); - ui_label2_bool("A", input(GAMEPAD_A) ); - ui_label2_bool("B", input(GAMEPAD_B) ); - ui_label2_bool("X", input(GAMEPAD_X) ); - ui_label2_bool("Y", input(GAMEPAD_Y) ); - ui_label2_bool("Up", input(GAMEPAD_UP) ); - ui_label2_bool("Down", input(GAMEPAD_DOWN) ); - ui_label2_bool("Left", input(GAMEPAD_LEFT) ); - ui_label2_bool("Right", input(GAMEPAD_RIGHT) ); - ui_label2_bool("Menu", input(GAMEPAD_MENU) ); - ui_label2_bool("Start", input(GAMEPAD_START) ); + ui_label2_bool("A", input(GAMEPAD_A) ); + ui_label2_bool("B", input(GAMEPAD_B) ); + ui_label2_bool("X", input(GAMEPAD_X) ); + ui_label2_bool("Y", input(GAMEPAD_Y) ); + ui_label2_bool("Up", input(GAMEPAD_UP) ); + ui_label2_bool("Down", input(GAMEPAD_DOWN) ); + ui_label2_bool("Left", input(GAMEPAD_LEFT) ); + ui_label2_bool("Right", input(GAMEPAD_RIGHT) ); + ui_label2_bool("Menu", input(GAMEPAD_MENU) ); + ui_label2_bool("Start", input(GAMEPAD_START) ); - ui_separator(); + ui_separator(); - ui_label2_float("Left pad x", input(GAMEPAD_LPADX) ); - ui_label2_float("Left pad y", input(GAMEPAD_LPADY) ); - ui_label2_float("Left trigger", input(GAMEPAD_LT) ); - ui_label2_bool("Left bumper", input(GAMEPAD_LB) ); - ui_label2_bool("Left thumb", input(GAMEPAD_LTHUMB) ); + ui_label2_float("Left pad x", input(GAMEPAD_LPADX) ); + ui_label2_float("Left pad y", input(GAMEPAD_LPADY) ); + ui_label2_float("Left trigger", input(GAMEPAD_LT) ); + ui_label2_bool("Left bumper", input(GAMEPAD_LB) ); + ui_label2_bool("Left thumb", input(GAMEPAD_LTHUMB) ); - vec2 v = input_filter_deadzone( input2(GAMEPAD_LPADX), 0.1f ); - ui_label2_float("Filtered pad x", v.x); - ui_label2_float("Filtered pad y", v.y); + vec2 v = input_filter_deadzone( input2(GAMEPAD_LPADX), 0.1f ); + ui_label2_float("Filtered pad x", v.x); + ui_label2_float("Filtered pad y", v.y); - ui_separator(); + ui_separator(); - ui_label2_float("Right pad x", input(GAMEPAD_RPADX) ); - ui_label2_float("Right pad y", input(GAMEPAD_RPADY) ); - ui_label2_float("Right trigger", input(GAMEPAD_RT) ); - ui_label2_bool("Right bumper", input(GAMEPAD_RB) ); - ui_label2_bool("Right thumb", input(GAMEPAD_RTHUMB) ); + ui_label2_float("Right pad x", input(GAMEPAD_RPADX) ); + ui_label2_float("Right pad y", input(GAMEPAD_RPADY) ); + ui_label2_float("Right trigger", input(GAMEPAD_RT) ); + ui_label2_bool("Right bumper", input(GAMEPAD_RB) ); + ui_label2_bool("Right thumb", input(GAMEPAD_RTHUMB) ); - vec2 w = input_filter_deadzone( input2(GAMEPAD_RPADX), 0.1f ); - ui_label2_float("Filtered pad x", w.x); - ui_label2_float("Filtered pad y", w.y); + vec2 w = input_filter_deadzone( input2(GAMEPAD_RPADX), 0.1f ); + ui_label2_float("Filtered pad x", w.x); + ui_label2_float("Filtered pad y", w.y); ui_enable(); input_use(0); return 0; - } +} int ui_gamepads() { for( int i = 0; i < 4; ++i ) ui_gamepad(i); @@ -346034,9 +346259,9 @@ void transpose44(mat44 m, const mat44 a) { // M[i][j] = A[j][i]; // @todo: test me // float det33 = M[0,0]*((M[1,1]*M[2,2])-(M[2,1]*M[1,2]))-M[0,1]*(M[1,0]*M[2,2]-M[2,0]*M[1,2])+M[0,2]*(M[1,0]*M[2,1]-M[2,0]*M[1,1]); // -// float det33 = +// float det33 = // rgt.x * fwd.y * upv.z - rgt.z * fwd.y * upv.x + -// rgt.y * fwd.z * upv.x - rgt.y * fwd.x * upv.z + +// rgt.y * fwd.z * upv.x - rgt.y * fwd.x * upv.z + // rgt.z * fwd.x * upv.y - rgt.x * fwd.z * upv.y; // // void transpose33(mat33 m, const mat33 a) { // M[i][j] = A[j][i]; @@ -346272,7 +346497,7 @@ void printi_( int *m, int ii, int jj ) { } void print_( float *m, int ii, int jj ) { for( int j = 0; j < jj; ++j ) { - for( int i = 0; i < ii; ++i ) printf("%8.3f ", *m++); + for( int i = 0; i < ii; ++i ) printf("%8.3f", *m++); puts(""); } // puts("---"); @@ -347342,7 +347567,7 @@ char** server_poll(unsigned timeout_ms) { } } break; case MSG_RPC: { - event.type = NETWORK_EVENT_RPC; + event.type = NETWORK_EVENT_RPC; unsigned id = *(uint32_t*)ptr; ptr += 4; char *cmdline = ptr; char *resp = rpc(id, cmdline); @@ -347353,7 +347578,7 @@ char** server_poll(unsigned timeout_ms) { msg = va("%d req:%s res:%s", 0, cmdline, resp); } break; case MSG_RPC_RESP: { - event.type = NETWORK_EVENT_RPC_RESP; + event.type = NETWORK_EVENT_RPC_RESP; msg = va("%d %s", 0, va("%s", ptr)); } break; default: @@ -347438,7 +347663,7 @@ char** client_poll(unsigned timeout_ms) { } } break; case MSG_RPC: { - event.type = NETWORK_EVENT_RPC; + event.type = NETWORK_EVENT_RPC; unsigned id = *(uint32_t*)ptr; ptr += 4; char *cmdline = ptr; char *resp = rpc(id, cmdline); @@ -347449,7 +347674,7 @@ char** client_poll(unsigned timeout_ms) { msg = va("%d req:%s res:%s", 0, cmdline, resp); } break; case MSG_RPC_RESP: { - event.type = NETWORK_EVENT_RPC_RESP; + event.type = NETWORK_EVENT_RPC_RESP; msg = va("%d %s", 0, ptr); } break; default: @@ -347473,7 +347698,7 @@ char** client_poll(unsigned timeout_ms) { msg = va( "%d timeout", 0); FREE(event.peer->data); event.peer->data = NULL; - network_put(NETWORK_RANK, -1); + network_put(NETWORK_RANK, -1); network_put(NETWORK_LIVE, 0); break; } @@ -348146,7 +348371,7 @@ static bool rd(void *buf, size_t len, size_t swap) { // return false any error a bool ret; if( in.fp ) { assert( !ferror(in.fp) && "invalid file handle (reader)" ); - ret = len == fread((char*)buf, 1, len, in.fp); + ret = 1 == fread((char*)buf, len, 1, in.fp); } else { assert( in.membuf && "invalid memory buffer (reader)"); assert( (in.offset + len <= in.memsize) && "memory overflow! (reader)"); @@ -349824,7 +350049,7 @@ void entropy( void *buf, unsigned n ) { FILE *fp = fopen( "/dev/urandom", "r" ); if( !fp ) assert(!"/dev/urandom open failed"); - size_t read = fread( buf, 1, n, fp ); + size_t read = n * fread( buf, n, 1, fp ); assert( read == n && "/dev/urandom read failed" ); fclose( fp ); } @@ -349903,7 +350128,7 @@ static map(unsigned, array(reflect_t)) members; void reflect_init() { if(!reflects) map_init_int(reflects); if(!members) map_init_int(members); - } +} AUTORUN { reflect_init(); } @@ -349915,7 +350140,7 @@ const char* symbol_naked(const char *s) { if(!strstr(s, " *") ) return s; char *copy = va("%s", s); do strswap(copy," *","*"); while( strstr(copy, " *") ); // char * -> char* - return (const char *)copy; + return (const char*)copy; } void type_inscribe(const char *TY,unsigned TYsz,const char *infos) { @@ -350031,11 +350256,11 @@ int ui_reflect(const char *filter) { // ENUMS, then FUNCTIONS, then STRUCTS unsigned masks[] = { 'E', 'F', 'S' }; for( int i = 0; i < countof(masks); ++i ) - for each_map_ptr(reflects, unsigned, k, reflect_t, R) { + for each_map_ptr(reflects, unsigned, k, reflect_t, R) { if( strmatchi(R->name, filter)) { ui_reflect_(R, filter, masks[i]); - } -} + } + } if( enabled ) ui_enable(); return 0; @@ -350076,11 +350301,11 @@ AUTOTEST { //printf("+%s vec3.%s (+%x) // %s\n", R->type, R->name, R->member_offset, R->info); } - // reflect_print("puts"); + //reflect_print("puts"); //reflect_print("TEXTURE_RGBA"); //reflect_print("vec3"); - // reflect_dump("*"); + //reflect_dump("*"); } #line 0 @@ -350183,7 +350408,7 @@ unsigned shader_geom(const char *gs, const char *vs, const char *fs, const char PRINTF(/*"!"*/"Compiling shader\n"); char *glsl_defines = ""; - if (defines) { + if( defines ) { for each_substring(defines, ",", def) { glsl_defines = va("%s#define %s\n", glsl_defines, def); } @@ -350487,7 +350712,7 @@ int ui_shaders() { if( !map_count(shader_reflect) ) return ui_label(ICON_MD_WARNING " No shaders with annotations loaded."), 0; int changed = 0; - for each_map_ptr(shader_reflect, unsigned, k, array(char*), v) { + for each_map_ptr(shader_reflect, unsigned, k, array(char*), v) { int open = 0, clicked_or_toggled = 0; char *id = va("##SHD%d", *k); char *title = va("Shader %d", *k); @@ -350654,6 +350879,27 @@ unsigned bgraf(float b, float g, float r, float a) { return rgba(r * 255, g * 255, b * 255, a * 255); } +unsigned atorgba(const char *s) { + if( s[0] != '#' ) return 0; + unsigned r = 0, g = 0, b = 0, a = 255; + int slen = strspn(s+1, "0123456789abcdefABCDEF"); + if( slen > 8 ) slen = 8; + /**/ if( slen == 6 ) sscanf(s+1, "%2x%2x%2x", &r,&g,&b); + else if( slen == 8 ) sscanf(s+1, "%2x%2x%2x%2x", &r,&g,&b,&a); + else if( slen == 3 ) sscanf(s+1, "%1x%1x%1x", &r,&g,&b ), r=r<<4|r,g=g<<4|g,b=b<<4|b; + else if( slen == 4 ) sscanf(s+1, "%1x%1x%1x%1x", &r,&g,&b,&a), r=r<<4|r,g=g<<4|g,b=b<<4|b,a=a<<4|a; + return rgba(r,g,b,a); +} +char *rgbatoa(unsigned rgba) { + unsigned a = rgba >> 24; + unsigned b =(rgba >> 16) & 255; + unsigned g =(rgba >> 8) & 255; + unsigned r = rgba & 255; + char *s = va("# "); + sprintf(s+1, "%02x%02x%02x%02x", r,g,b,a); + return s; +} + // ----------------------------------------------------------------------------- // images @@ -351540,16 +351786,19 @@ void sprite( texture_t texture, float position[3], float rotation, uint32_t colo sprite_sheet( texture, spritesheet, position, rotation, offset, scale, 0, color, false ); } -// rect(x,y,w,h) is [0..1] normalized, z-index, pos(x,y,scale), rotation (degrees), color (rgba) -void sprite_rect( texture_t t, vec4 rect, float zindex, vec3 pos, float tilt_deg, unsigned tint_rgba) { - // @todo: no need to queue if alpha or scale are zero +// rect(x,y,w,h) is [0..1] normalized, z-index, pos(x,y,scalex,scaley), rotation (degrees), color (rgba) +void sprite_rect( texture_t t, vec4 rect, float zindex, vec4 pos, float tilt_deg, unsigned tint_rgba) { + // do not queue if either alpha or scale is zero + if( 0 == (pos.z * pos.w * ((tint_rgba>>24) & 255)) ) return; + sprite_t s = {0}; - s.x = rect.x, s.y = rect.y, s.w = rect.z, s.h = rect.w; - s.cellw = s.w * t.w, s.cellh = s.h * t.h; - s.px = pos.x, s.py = pos.y, s.pz = zindex; - s.sx = s.sy = pos.z; + s.sx = pos.z, s.sy = pos.w; + + s.x = rect.x, s.y = rect.y, s.w = rect.z, s.h = rect.w; + s.cellw = s.w * s.sx * t.w, s.cellh = s.h * s.sy * t.h; + s.rgba = tint_rgba; s.ox = 0/*ox*/ * s.sx; s.oy = 0/*oy*/ * s.sy; @@ -351895,10 +352144,10 @@ tileset_t tileset(texture_t tex, unsigned tile_w, unsigned tile_h, unsigned cols return t; } -int tileset_ui( tileset_t t ) { +int ui_tileset( tileset_t t ) { ui_subimage(va("Selection #%d (%d,%d)", t.selected, t.selected % t.cols, t.selected / t.cols), t.tex.id, t.tex.w, t.tex.h, (t.selected % t.cols) * t.tile_w, (t.selected / t.cols) * t.tile_h, t.tile_w, t.tile_h); int choice; - if( (choice = ui_image(0, t.tex.id, t.tex.w,t.tex.h)) ) { + if( (choice = ui_image(0, t.tex.id, t.tex.w,t.tex.h)) ) { int px = ((choice / 100) / 100.f) * t.tex.w / t.tile_w; int py = ((choice % 100) / 100.f) * t.tex.h / t.tile_h; t.selected = px + py * t.cols; @@ -352009,7 +352258,7 @@ void tiled_render(tiled_t tmx, vec3 pos) { } } -void tiled_ui(tiled_t *t) { +void ui_tiled(tiled_t *t) { ui_label2("Loaded map", t->map_name ? t->map_name : "(none)"); ui_label2("Map dimensions", va("%dx%d", t->w, t->h)); ui_label2("Tile dimensions", va("%dx%d", t->tilew, t->tileh)); @@ -352026,7 +352275,7 @@ void tiled_ui(tiled_t *t) { if( ui_collapse(va("Sets: %d", array_count(t->layers)), va("%p",t))) { for( int i = 0; i < array_count(t->layers); ++i ) { if( ui_collapse(va("%d", i+1), va("%p%d",t,i)) ) { - t->sets[i].selected = tileset_ui( t->sets[i] ); + t->sets[i].selected = ui_tileset( t->sets[i] ); ui_collapse_end(); } } @@ -352453,7 +352702,7 @@ void spine_render(spine_t *p, vec3 offset, unsigned flags) { offsy = dir.y * r->sy; } - sprite_rect(p->texture, rect, zindex, add3(vec3(target.x,target.y,1),vec3(offsx,offsy,0)), tilt, tint); + sprite_rect(p->texture, rect, zindex, add4(vec4(target.x,target.y,1,1),vec4(offsx,offsy,0,0)), tilt, tint); } } @@ -352501,7 +352750,7 @@ void spine_animate(spine_t *p, float delta) { spine_animate_(p, &p->time, &p->maxtime, delta); } -void spine_ui(spine_t *p) { +void ui_spine(spine_t *p) { if( ui_collapse(va("Anims: %d", array_count(p->anims)), va("%p-a", p))) { for each_array_ptr(p->anims, spine_anim_t, q) { if(ui_slider2("", &p->time, va("%.2f/%.0f %.2f%%", p->time, p->maxtime, p->time * 100.f))) { @@ -352578,7 +352827,7 @@ void spine_ui(spine_t *p) { sprite_rect(p->texture, // rect: vec4(r->x*1.0/p->texture.w,r->y*1.0/p->texture.h,(r->x+r->w)*1.0/p->texture.w,(r->y+r->h)*1.0/p->texture.h), ptr4(&r->x), // atlas - 0, vec3(0,0,0), r->deg + tilt, tint); + 0, vec4(0,0,1,1), r->deg + tilt, tint); sprite_flush(); camera_get_active()->position = vec3(+window_width()/3,window_height()/2.25,2); } @@ -352823,7 +353072,7 @@ void skybox_mie_calc_sh(skybox_t *sky, float sky_intensity) { for(int i = 0; i < 6; ++i) { glGenFramebuffers(1, &sky->framebuffers[i]); glBindFramebuffer(GL_FRAMEBUFFER, sky->framebuffers[i]); - + glGenTextures(1, &sky->textures[i]); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, sky->textures[i]); @@ -352894,7 +353143,7 @@ void skybox_mie_calc_sh(skybox_t *sky, float sky_intensity) { void skybox_sh_reset(skybox_t *sky) { for (int s = 0; s < 9; s++) { sky->cubemap.sh[s] = vec3(0,0,0); - } + } } void skybox_sh_add_light(skybox_t *sky, vec3 light, vec3 dir, float strength) { @@ -353474,7 +353723,7 @@ bool postfx_end(postfx *fx) { return false; } - handle fb = *array_back(last_fb); + handle fb = *array_back(last_fb); array_pop(last_fb); fbo_bind(fb); @@ -353590,13 +353839,13 @@ int ui_fxs() { if(!fx.num_loaded) return ui_label(ICON_MD_WARNING " No Post FXs with annotations loaded."), 0; int changed = 0; - for( int i = 0; i < 64; ++i ) { - char *name = fx_name(i); if( !name ) break; - bool b = fx_enabled(i); - if( ui_bool(name, &b) ) fx_enable(i, fx_enabled(i) ^ 1); - ui_fx(i); + for( int i = 0; i < 64; ++i ) { + char *name = fx_name(i); if( !name ) break; + bool b = fx_enabled(i); + if( ui_bool(name, &b) ) fx_enable(i, fx_enabled(i) ^ 1); + ui_fx(i); ui_separator(); - } + } return changed; } @@ -354359,7 +354608,7 @@ bool model_load_textures(iqm_t *q, const struct iqmheader *hdr, model_t *model) if( material_embedded_texture ) { *material_embedded_texture = '\0'; material_embedded_texture += 5; - array(char) embedded_texture = base64__decode(material_embedded_texture, strlen(material_embedded_texture)); + array(char) embedded_texture = base64_decode(material_embedded_texture, strlen(material_embedded_texture)); //printf("%s %d\n", material_embedded_texture, array_count(embedded_texture)); //hexdump(embedded_texture, array_count(embedded_texture)); *out = texture_compressed_from_mem( embedded_texture, array_count(embedded_texture), 0 ).id; @@ -354485,7 +354734,7 @@ model_t model_from_mem(const void *mem, int len, int flags) { "att_position,att_texcoord,att_normal,att_tangent,att_instanced_matrix,,,,att_indexes,att_weights,att_vertexindex,att_color,att_bitangent","fragColor", va("SHADING_PHONG,%s", (flags&MODEL_RIMLIGHT)?"RIM":"")); // } - ASSERT(shaderprog > 0); + // ASSERT(shaderprog > 0); iqm_t *q = CALLOC(1, sizeof(iqm_t)); m.program = shaderprog; @@ -354858,13 +355107,13 @@ anims_t animations(const char *pathfile, int flags) { if( anim_file ) { // deserialize anim a.speed = 1.0; - for each_substring(anim_file, "\r\n", anim) { - int from, to; - char anim_name[128] = {0}; - if( sscanf(anim, "%*s %d-%d %127[^\r\n]", &from, &to, anim_name) != 3) continue; + for each_substring(anim_file, "\r\n", anim) { + int from, to; + char anim_name[128] = {0}; + if( sscanf(anim, "%*s %d-%d %127[^\r\n]", &from, &to, anim_name) != 3) continue; array_push(a.anims, !!strstri(anim_name, "loop") || !strcmpi(anim_name, "idle") ? loop(from, to, 0, 0) : clip(from, to, 0, 0)); // [from,to,flags] array_back(a.anims)->name = strswap(strswap(strswap(STRDUP(anim_name), "Loop", ""), "loop", ""), "()", ""); // @leak - } + } } else { // placeholder array_push(a.anims, clip(0,1,0,0)); @@ -354986,7 +355235,7 @@ void ddraw_flush_projview(mat44 proj, mat44 view) { // queue for(int i = 0; i < array_count(dd_text2d); ++i) { ddraw_color(dd_text2d[i].col); - ddraw_text(dd_text2d[i].pos, dd_text2d[i].sca, dd_text2d[i].str); + ddraw_text(dd_text2d[i].pos, dd_text2d[i].sca, dd_text2d[i].str); } // flush @@ -355017,7 +355266,7 @@ void ddraw_flush_projview(mat44 proj, mat44 view) { // clear array_resize(dd_text2d, 0); } - + glDisable(GL_LINE_SMOOTH); glDisable(GL_PROGRAM_POINT_SIZE); @@ -355234,7 +355483,7 @@ void ddraw_cube(vec3 center, float radius) { // draw_prism(center, 1, -1, vec3(0 #if 0 // @fixme: broken void ddraw_cube44(vec3 radius, mat44 M) { - float m33[9]; extract33(m33, M); // = { M[0,1,2], M[4,5,6], M[8,9,10] } + float m33[9]; extract33(m33, M); // = { M[0,1,2], M[4,5,6], M[8,9,10] } ddraw_cube33( vec3(M[12], M[13], M[14]), radius, m33 ); } #endif @@ -355391,7 +355640,7 @@ void ddraw_pyramid(vec3 center, float height, int segments) { ddraw_prism(center, 1, height, vec3(0,1,0), segments); } void ddraw_cylinder(vec3 center, float height, int segments) { - ddraw_prism(center, 1, -height, vec3(0,1,0), segments); + ddraw_prism(center, 1, -height, vec3(0,1,0), segments); } void ddraw_diamond(vec3 from, vec3 to, float size) { poly p = diamond(from, to, size); @@ -355734,9 +355983,9 @@ camera_t camera() { static camera_t cam = {0}; do_once { cam.speed = 0.50f; - cam.position = vec3(10,10,10); + cam.position = vec3(10,10,10); cam.updir = vec3(0,1,0); - cam.fov = 45; + cam.fov = 45; cam.damping = false; cam.move_friction = 0.09f; @@ -355746,18 +355995,18 @@ camera_t camera() { cam.last_look = vec2(0,0); cam.last_move = vec3(0,0,0); - // update proj & view - camera_lookat(&cam,vec3(-5,0,-5)); + // update proj & view + camera_lookat(&cam,vec3(-5,0,-5)); // @todo: remove this hack that is used to consolidate dampings if( 1 ) { vec3 zero = {0}; - for( int i = 0; i < 1000; ++i ) { + for( int i = 0; i < 1000; ++i ) { camera_moveby(&cam, zero); - camera_fps(&cam,0,0); + camera_fps(&cam,0,0); + } } } - } last_camera = old; *camera_get_active() = cam; @@ -356387,28 +356636,72 @@ const char *app_cache() { const char * app_exec( const char *cmd ) { static __thread char output[4096+16] = {0}; + char *buf = output + 16; buf[0] = 0; // memset(buf, 0, 4096); if( !cmd[0] ) return "0 "; cmd = file_normalize(cmd); int rc = -1; - char *buf = output + 16; buf[0] = 0; // memset(buf, 0, 4096); + + // pick the fastest code path per platform +#if is(osx) for( FILE *fp = popen( cmd, "r" ); fp; rc = pclose(fp), fp = 0) { - while( fgets(buf, 4096 - 1, fp) ) { - } + // while( fgets(buf, 4096 - 1, fp) ) {} } - if( rc != 0 ) { - char *r = strrchr(buf, '\r'); if(r) *r = 0; - char *n = strrchr(buf, '\n'); if(n) *n = 0; + // if( rc != 0 ) { + // char *r = strrchr(buf, '\r'); if(r) *r = 0; + // char *n = strrchr(buf, '\n'); if(n) *n = 0; + // } +#elif is(win32) + STARTUPINFOA si = {0}; si.cb = sizeof(si); + PROCESS_INFORMATION pi = {0}; + + snprintf(output+16, 4096, "cmd /c \"%s\"", cmd); + + int prio = //strstr(cmd, "ffmpeg") || strstr(cmd, "furnace") || strstr(cmd, "ass2iqe") ? + REALTIME_PRIORITY_CLASS; //: 0; + +//prio |= DETACHED_PROCESS; +//si.dwFlags = STARTF_USESTDHANDLES; + + if( CreateProcessA( + NULL, output+16, // cmdline + NULL, + NULL, + FALSE, // FALSE: dont inherit handles + prio /*CREATE_DEFAULT_ERROR_MODE|CREATE_NO_WINDOW*/, // 0|HIGH_PRIORITY_CLASS + NULL, // "", // NULL would inherit env + NULL, // current dir + &si, &pi) ) + { + // Wait for process + DWORD dwExitCode2 = WaitForSingleObject(pi.hProcess, INFINITE); + DWORD dwExitCode; GetExitCodeProcess(pi.hProcess, &dwExitCode); + rc = dwExitCode; } + else + { + // CreateProcess() failed + rc = GetLastError(); + } +#else + rc = system(cmd); +#endif + return snprintf(output, 16, "%-15d", rc), buf[-1] = ' ', output; } int app_spawn( const char *cmd ) { - if( !cmd[0] ) return -1; + if( !cmd[0] ) return false; cmd = file_normalize(cmd); - return system(cmd); +#if _WIN32 + bool ok = WinExec(va("cmd /c \"%s\"", cmd), SW_HIDE) > 31; +#else + bool ok = system(va("%s &", cmd)) == 0; +#endif + + return ok; } #if is(osx) @@ -356512,7 +356805,7 @@ char *callstack( int traces ) { // should concat addresses into a multi-address line char *binary = symbols[i]; - char *address = strchr( symbols[i], '(' ) + 1; + char *address = strchr( symbols[i], '(' ) + 1; *strrchr( address, ')') = '\0'; *(address - 1) = '\0'; for( FILE *fp = popen(va("addr2line -e %s %s", binary, address), "r" ); fp ; pclose(fp), fp = 0 ) { //addr2line -e binary -f -C address @@ -356907,8 +357200,8 @@ void tty_attach() { // in order to have a Windows gui application with console: // - use WinMain() then AllocConsole(), but that may require supporintg different entry points for different platforms. // - /link /SUBSYSTEM:CONSOLE and then call FreeConsole() if no console is needed, but feels naive to flash the terminal for a second. - // - /link /SUBSYSTEM:WINDOWS /entry:mainCRTStartup, then AllocConsole() as follows. Quoting @pmttavara: - // "following calls are the closest i'm aware you can get to /SUBSYSTEM:CONSOLE in a gui program + // - /link /SUBSYSTEM:WINDOWS /entry:mainCRTStartup, then AllocConsole() as follows. Quoting @pmttavara: + // "following calls are the closest i'm aware you can get to /SUBSYSTEM:CONSOLE in a gui program // while cleanly handling existing consoles (cmd.exe), pipes (ninja) and no console (VS/RemedyBG; double-clicking the game)" do_once { if( !AttachConsole(ATTACH_PARENT_PROCESS) && GetLastError() != ERROR_ACCESS_DENIED ) { bool ok = !!AllocConsole(); ASSERT( ok ); } @@ -356991,7 +357284,7 @@ void alert(const char *message) { // @todo: move to app_, besides die() #endif window_visible(true); - } +} void breakpoint() { debugbreak(); @@ -357104,9 +357397,9 @@ void app_crash() { *p = 42; } void app_beep() { - ifdef(win32, system("rundll32 user32.dll,MessageBeep"); return; ); - ifdef(linux, system("paplay /usr/share/sounds/freedesktop/stereo/message.oga"); return; ); - ifdef(osx, system("tput bel"); return; ); + ifdef(win32, app_spawn("rundll32 user32.dll,MessageBeep"); return; ); + ifdef(linux, app_spawn("paplay /usr/share/sounds/freedesktop/stereo/message.oga"); return; ); + ifdef(osx, app_spawn("tput bel"); return; ); //fallback: fputc('\x7', stdout); @@ -357161,7 +357454,7 @@ bool app_open_folder(const char *file) { #else snprintf(buf, sizeof(buf), "xdg-open \"%s\"", file); #endif - return system(buf) == 0; + return app_spawn(buf); } static @@ -357174,7 +357467,7 @@ bool app_open_file(const char *file) { #else snprintf(buf, sizeof(buf), "xdg-open \"%s\"", file); #endif - return system(buf) == 0; + return app_spawn(buf); } static @@ -357328,8 +357621,8 @@ static uint64_t nanotimer(uint64_t *out_freq) { } uint64_t time_ns() { - static uint64_t epoch = 0; - static uint64_t freq = 0; + static __thread uint64_t epoch = 0; + static __thread uint64_t freq = 0; if( !freq ) { epoch = nanotimer(&freq); } @@ -357872,50 +358165,49 @@ int (profiler_enable)(bool on) { return profiler_enabled = on; } void (ui_profiler)() { // @todo: ui_plot() - double fps = window_fps(); - profile_setstat("Render.num_fps", fps); + double fps = window_fps(); + profile_setstat("Render.num_fps", fps); - enum { COUNT = 300 }; - - static float values[COUNT] = {0}; static int offset = 0; - values[offset=(offset+1)%COUNT] = fps; + enum { COUNT = 300 }; + static float values[COUNT] = {0}; static int offset = 0; + values[offset=(offset+1)%COUNT] = fps; // draw fps-meter: 300 samples, [0..70] range each, 70px height plot ... // ... unless filtering is enabled if( !(ui_filter && ui_filter[0]) ) { nk_layout_row_dynamic(ui_ctx, 70, 1); - int index = -1; - if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) { - for( int i = 0; i < COUNT; ++i ) { - nk_flags res = nk_chart_push(ui_ctx, (float)values[i]); - if( res & NK_CHART_HOVERING ) index = i; - if( res & NK_CHART_CLICKED ) index = i; - } - nk_chart_end(ui_ctx); + int index = -1; + if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) { + for( int i = 0; i < COUNT; ++i ) { + nk_flags res = nk_chart_push(ui_ctx, (float)values[i]); + if( res & NK_CHART_HOVERING ) index = i; + if( res & NK_CHART_CLICKED ) index = i; } + nk_chart_end(ui_ctx); + } - // hightlight 60fps, 36fps and 12fps - struct nk_rect space; nk_layout_peek(&space, ui_ctx); - struct nk_command_buffer *canvas = nk_window_get_canvas(ui_ctx); - nk_stroke_line(canvas, space.x+0,space.y-60,space.x+space.w,space.y-60, 1.0, nk_rgba(0,255,0,128)); - nk_stroke_line(canvas, space.x+0,space.y-36,space.x+space.w,space.y-36, 1.0, nk_rgba(255,255,0,128)); - nk_stroke_line(canvas, space.x+0,space.y-12,space.x+space.w,space.y-12, 1.0, nk_rgba(255,0,0,128)); + // hightlight 60fps, 36fps and 12fps + struct nk_rect space; nk_layout_peek(&space, ui_ctx); + struct nk_command_buffer *canvas = nk_window_get_canvas(ui_ctx); + nk_stroke_line(canvas, space.x+0,space.y-60,space.x+space.w,space.y-60, 1.0, nk_rgba(0,255,0,128)); + nk_stroke_line(canvas, space.x+0,space.y-36,space.x+space.w,space.y-36, 1.0, nk_rgba(255,255,0,128)); + nk_stroke_line(canvas, space.x+0,space.y-12,space.x+space.w,space.y-12, 1.0, nk_rgba(255,0,0,128)); - if( index >= 0 ) { - nk_tooltipf(ui_ctx, "%.2f fps", (float)values[index]); - } + if( index >= 0 ) { + nk_tooltipf(ui_ctx, "%.2f fps", (float)values[index]); + } } - for each_map_ptr_sorted(profiler, const char *, key, struct profile_t, val ) { - if( isnan(val->stat) ) { - float v = val->avg/1000.0; - ui_slider2(*key, &v, va("%.2f ms", val->avg/1000.0)); - } else { - float v = val->stat; - ui_slider2(*key, &v, va("%.2f", val->stat)); - val->stat = 0; - } + for each_map_ptr_sorted(profiler, const char *, key, struct profile_t, val ) { + if( isnan(val->stat) ) { + float v = val->avg/1000.0; + ui_slider2(*key, &v, va("%.2f ms", val->avg/1000.0)); + } else { + float v = val->stat; + ui_slider2(*key, &v, va("%.2f", val->stat)); + val->stat = 0; + } } } #endif @@ -358324,7 +358616,7 @@ void window_drop_callback(GLFWwindow* window, int count, const char** paths) { void window_hints(unsigned flags) { #ifdef __APPLE__ //glfwInitHint( GLFW_COCOA_CHDIR_RESOURCES, GLFW_FALSE ); - glfwWindowHint( GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE ); + glfwWindowHint( GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE ); // @todo: remove silicon mac M1 hack //glfwWindowHint( GLFW_COCOA_GRAPHICS_SWITCHING, GLFW_FALSE ); //glfwWindowHint( GLFW_COCOA_MENUBAR, GLFW_FALSE ); #endif @@ -358473,6 +358765,9 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { //glfwWindowHint(GLFW_FLOATING, GLFW_TRUE); // always on top glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_TRUE); } + if( flags & WINDOW_BORDERLESS ) { + glfwWindowHint(GLFW_DECORATED, GLFW_FALSE); + } #endif // windowed float ratio = (float)winWidth / (winHeight + !winHeight); @@ -358519,10 +358814,10 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { #endif glDebugEnable(); - + // setup nuklear ui ui_ctx = nk_glfw3_init(&nk_glfw, window, NK_GLFW3_INSTALL_CALLBACKS); - + //glEnable(GL_TEXTURE_2D); // 0:disable vsync, 1:enable vsync, <0:adaptive (allow vsync when framerate is higher than syncrate and disable vsync when framerate drops below syncrate) @@ -358543,7 +358838,7 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { PRINTF("GPU OpenGL: %d.%d\n", GLAD_VERSION_MAJOR(gl_version), GLAD_VERSION_MINOR(gl_version)); if( FLAGS_TRANSPARENT ) { // @transparent - glfwSetWindowAttrib(window, GLFW_DECORATED, GLFW_FALSE); + glfwSetWindowAttrib(window, GLFW_DECORATED, GLFW_FALSE); // @todo: is decorated an attrib or a hint? if( scale >= 1 ) glfwMaximizeWindow(window); } #endif @@ -358702,7 +358997,7 @@ int window_frame_begin() { engine_tick(); } #endif // ENABLE_RETAIL - + #if 0 // deprecated // run user-defined hooks for(int i = 0; i < 64; ++i) { @@ -358723,7 +359018,7 @@ int window_frame_begin() { timer = 0; } #else - glfwSetWindowTitle(window, title); + glfwSetWindowTitle(window, title); #endif void input_update(); @@ -358735,7 +359030,7 @@ int window_frame_begin() { void window_frame_end() { // flush batching systems that need to be rendered before frame swapping. order matters. { - font_goto(0,0); + font_goto(0,0); touch_flush(); sprite_flush(); @@ -358796,7 +359091,7 @@ void window_shutdown() { #endif - window_loop_exit(); // finish emscripten loop automatically + window_loop_exit(); // finish emscripten loop automatically } } @@ -358936,17 +359231,17 @@ void window_icon(const char *file_icon) { if( !data ) data = file_read(file_icon), len = file_size(file_icon); if( data && len ) { - image_t img = image_from_mem(data, len, IMAGE_RGBA); - if( img.w && img.h && img.pixels ) { - GLFWimage images[1]; - images[0].width = img.w; - images[0].height = img.h; - images[0].pixels = img.pixels; - glfwSetWindowIcon(window, 1, images); + image_t img = image_from_mem(data, len, IMAGE_RGBA); + if( img.w && img.h && img.pixels ) { + GLFWimage images[1]; + images[0].width = img.w; + images[0].height = img.h; + images[0].pixels = img.pixels; + glfwSetWindowIcon(window, 1, images); has_icon = 1; - return; - } + return; } + } #if 0 // is(win32) HANDLE hIcon = LoadImageA(0, file_icon, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE); if( hIcon ) { @@ -358981,7 +359276,7 @@ int window_record(const char *outfile_mp4) { vec2 window_dpi() { vec2 dpi = vec2(1,1); -#if !defined(__EMSCRIPTEN__) && !defined(__APPLE__) +#if !is(ems) && !is(osx) // @todo: remove silicon mac M1 hack glfwGetMonitorContentScale(glfwGetPrimaryMonitor(), &dpi.x, &dpi.y); #endif return dpi; @@ -359070,9 +359365,9 @@ void window_fullscreen(int enabled) { } #else if( enabled ) - EM_ASM(Module.requestFullscreen(1, 1)); + EM_ASM(Module.requestFullscreen(1, 1)); else - EM_ASM(Module.exitFullscreen()); + EM_ASM(Module.exitFullscreen()); #endif #else @@ -359082,7 +359377,7 @@ void window_fullscreen(int enabled) { /*glfwGetWindowPos(g->window, &g->window_xpos, &g->window_ypos);*/ glfwGetWindowSize(g->window, &g->width, &g->height); glfwSetWindowMonitor(g->window, glfwGetPrimaryMonitor(), 0, 0, g->width, g->height, GLFW_DONT_CARE); - } else { + } else { glfwSetWindowMonitor(g->window, NULL, 0, 0, g->width, g->height, GLFW_DONT_CARE); } #else @@ -359457,7 +359752,7 @@ void *obj_free(void *o) { FREE(o); } return 0; -} + } return o; // cannot destroy: object is still referenced } @@ -359705,21 +360000,23 @@ void test_obj_scene() { static map(int,int) oms; static thread_mutex_t *oms_lock; void *obj_setmeta(void *o, const char *key, const char *value) { + void *ret = 0; do_threadlock(oms_lock) { if(!oms) map_init_int(oms); int *q = map_find_or_add(oms, intern(va("%llu-%s",obj_id((obj*)o),key)), 0); if(!*q && !value[0]) {} else *q = intern(value); - return quark(*q), o; + quark(*q), ret = o; } - return 0; // unreachable + return ret; } const char* obj_meta(const void *o, const char *key) { + const char *ret = 0; do_threadlock(oms_lock) { if(!oms) map_init_int(oms); int *q = map_find_or_add(oms, intern(va("%llu-%s",obj_id((obj*)o),key)), 0); - return quark(*q); + ret = quark(*q); } - return 0; // unreachable + return ret; } void *obj_setname(void *o, const char *name) { @@ -359879,6 +360176,8 @@ const char *p2s(const char *type, void *p) { else if( !strcmp(type, "vec2") ) return ftoa2(*(vec2*)p); else if( !strcmp(type, "vec3") ) return ftoa3(*(vec3*)p); else if( !strcmp(type, "vec4") ) return ftoa4(*(vec4*)p); + else if( !strcmp(type, "rgb") ) return rgbatoa(*(unsigned*)p); + else if( !strcmp(type, "rgba") ) return rgbatoa(*(unsigned*)p); else if( !strcmp(type, "char*") || !strcmp(type, "string") ) return va("%s", *(char**)p); // @todo: if strchr('*') assume obj, if reflected save guid: obj_id(); return tty_color(YELLOW), printf("p2s: cannot serialize `%s` type\n", type), tty_color(0), ""; @@ -359895,6 +360194,8 @@ bool s2p(void *P, const char *type, const char *str) { else if( !strcmp(type, "vec2") ) return !!memcpy(P, (v2 = atof2(str), &v2), sizeof(v2)); else if( !strcmp(type, "vec3") ) return !!memcpy(P, (v3 = atof3(str), &v3), sizeof(v3)); else if( !strcmp(type, "vec4") ) return !!memcpy(P, (v4 = atof4(str), &v4), sizeof(v4)); + else if( !strcmp(type, "rgb") ) return !!memcpy(P, (u = atorgba(str), &u), sizeof(u)); + else if( !strcmp(type, "rgba") ) return !!memcpy(P, (u = atorgba(str), &u), sizeof(u)); else if( !strcmp(type, "uintptr_t") ) return !!memcpy(P, (p = strtol(str, NULL, 16), &p), sizeof(p)); else if( !strcmp(type, "char*") || !strcmp(type, "string") ) { char substring[128] = {0}; @@ -360147,9 +360448,9 @@ char *entity_save(entity *self) { static void entity_register() { do_once { - STRUCT(entity, uintptr_t, cflags); - obj_extend(entity, save); -} + STRUCT(entity, uintptr_t, cflags); + obj_extend(entity, save); + } } AUTORUN{ @@ -361271,7 +361572,7 @@ int engine_tick() { window_fps_lock( hz < 5 ? 5 : hz ); } else { // window_fps_lock( editor_hz ); - } + } return 0; } @@ -361618,7 +361919,7 @@ int gizmo(vec3 *pos, vec3 *rot, vec3 *sca) { // -- localization kit -static const char *kit_lang = "enUS", *kit_langs = +static const char *kit_lang = "enUS", *kit_langs = "enUS,enGB," "frFR," "esES,esAR,esMX," @@ -361633,7 +361934,7 @@ static const char *kit_lang = "enUS", *kit_langs = static map(char*,char*) kit_ids; static map(char*,char*) kit_vars; -#ifndef KIT_FMT_ID2 +#ifndef KIT_FMT_ID2 #define KIT_FMT_ID2 "%s.%s" #endif diff --git a/engine/split/3rd_archive.h b/engine/split/3rd_archive.h index 5488b31..5525fef 100644 --- a/engine/split/3rd_archive.h +++ b/engine/split/3rd_archive.h @@ -27,6 +27,7 @@ #define ZIP_H #include #include +#include typedef struct zip zip; @@ -550,7 +551,7 @@ bool zip_append_file_timeinfo(zip *z, const char *entryname, const char *comment // @fixme: calc whole crc contents uint32_t crc = 0; - unsigned char buf[1<<15]; + unsigned char buf[4096]; while(!feof(in) && !ferror(in)) crc = zip__crc32(crc, buf, fread(buf, 1, sizeof(buf), in)); if(ferror(in)) return ERR(false, "Error while calculating CRC, skipping store."); diff --git a/engine/split/3rd_base64.h b/engine/split/3rd_base64.h new file mode 100644 index 0000000..60b29f3 --- /dev/null +++ b/engine/split/3rd_base64.h @@ -0,0 +1,140 @@ +// base64 de/encoder. Based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN). +// - rlyeh, public domain + +#ifndef BASE64_H +#define BASE64_H + +unsigned base64_bounds(unsigned size); +char* base64_encode(const void *inp, unsigned inlen); // free() after use +char* base64_decode(const char *inp, unsigned inlen); // array_free() after use + +#endif + +#ifdef BASE64_C +#include +#include +#include +#include +#include + +#define BASE64_ENCODE_OUT_SIZE(s) ((unsigned int)((((s) + 2) / 3) * 4 + 1)) +#define BASE64_DECODE_OUT_SIZE(s) ((unsigned int)(((s) / 4) * 3)) + +unsigned base64_bounds(unsigned size) { + return BASE64_ENCODE_OUT_SIZE(size); +} + +char* base64_encode(const void *inp, unsigned inlen) { // free() after use + unsigned outlen = base64_bounds(inlen); + char *out_ = malloc(outlen); + out_[outlen] = 0; + + uint_least32_t v; + unsigned ii, io, rem; + char *out = (char *)out_; + const unsigned char *in = (const unsigned char *)inp; + const uint8_t base64enc_tab[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + for(io = 0, ii = 0, v = 0, rem = 0; ii < inlen; ii ++) { + unsigned char ch; + ch = in[ii]; + v = (v << 8) | ch; + rem += 8; + while (rem >= 6) { + rem -= 6; + if (io >= outlen) + return (free(out_), 0); /* truncation is failure */ + out[io ++] = base64enc_tab[(v >> rem) & 63]; + } + } + if (rem) { + v <<= (6 - rem); + if (io >= outlen) + return (free(out_), 0); /* truncation is failure */ + out[io ++] = base64enc_tab[v & 63]; + } + while(io&3) { + if(io>=outlen) return (free(out_), 0); /* truncation is failure */ + out[io++]='='; + } + if(io>=outlen) return (free(out_), 0); /* no room for null terminator */ + out[io]=0; + return out_; +} + +#ifdef array_resize +array(char) base64_decode(const char *inp, unsigned inlen) { // array_free() after use +#if 0 + unsigned long outlen = BASE64_DECODE_OUT_SIZE(inlen); + array(char) out_ = 0; array_resize(out_, outlen+1); + + if( base64_decodex((const unsigned char *)inp, (unsigned long)inlen, (unsigned char *)out_, &outlen) != CRYPT_OK ) { + array_free(out_); + return 0; + } + + array_resize(out_, outlen); + out_[outlen] = 0; + return out_; +#else + unsigned outlen = BASE64_DECODE_OUT_SIZE(inlen); + array(char) out_ = 0; array_resize(out_, outlen); + + // based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN) + uint_least32_t v; + unsigned ii, io, rem; + char *out = (char *)out_; + const unsigned char *in = (const unsigned char *)inp; + const uint8_t base64dec_tab[256]= { + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, + 255, 254, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, + 255, 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, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255 }; + + for (io = 0, ii = 0,v = 0, rem = 0; ii < inlen; ii ++) { + unsigned char ch; + if (isspace(in[ii])) + continue; + if ((in[ii]=='=') || (!in[ii])) + break; /* stop at = or null character*/ + ch = base64dec_tab[(unsigned char)in[ii]]; + if (ch == 255) + break; /* stop at a parse error */ + v = (v<<6) | ch; + rem += 6; + if (rem >= 8) { + rem -= 8; + if (io >= outlen) + return (array_free(out_), NULL); /* truncation is failure */ + out[io ++] = (v >> rem) & 255; + } + } + if (rem >= 8) { + rem -= 8; + if (io >= outlen) + return (array_free(out_), NULL); /* truncation is failure */ + out[io ++] = (v >> rem) & 255; + } + return (array_resize(out_, io), out_); +#endif +} +#endif // array_resize +#endif // BASE64_C diff --git a/engine/split/3rd_compress.h b/engine/split/3rd_compress.h index 56e530c..77066b8 100644 --- a/engine/split/3rd_compress.h +++ b/engine/split/3rd_compress.h @@ -8955,12 +8955,7 @@ static bool LzmaDec_Init(CLzmaDec *p, const uint8_t *raw_props) // glue.c -static -#ifdef _MSC_VER -__declspec(thread) -#else -__thread -#endif +static __thread struct { uint8_t *begin, *seek, *end; } @@ -10300,9 +10295,7 @@ static inline uint32_t DecodeMod(const uint8_t** p) { // LZ77 -static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outlen) { - ULZ_WORKMEM *u =(ULZ_WORKMEM*)ULZ_REALLOC(0, sizeof(ULZ_WORKMEM)); - +static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outlen, ULZ_WORKMEM *u) { for (int i=0; iHashTable[i]=ULZ_NIL; @@ -10384,16 +10377,14 @@ static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outle op+=run; } - ULZ_REALLOC(u, 0); return op-out; } -static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, int level) { +static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, int level, ULZ_WORKMEM *u) { if (level<1 || level>9) return 0; const int max_chain=(level<9)?1<HashTable[i]=ULZ_NIL; @@ -10518,7 +10509,6 @@ static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, i op+=run; } - ULZ_REALLOC(u, 0); return op-out; } @@ -10575,9 +10565,11 @@ static int UlzDecompress(const uint8_t* in, int inlen, uint8_t* out, int outlen) } unsigned ulz_encode(const void *in, unsigned inlen, void *out, unsigned outlen, unsigned flags) { + static __thread ULZ_WORKMEM u; + int level = flags > 9 ? 9 : flags; // [0..(6)..9] - int rc = level ? UlzCompress((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, level) - : UlzCompressFast((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen); + int rc = level ? UlzCompress((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, level, &u) + : UlzCompressFast((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, &u); return (unsigned)rc; } unsigned ulz_decode(const void *in, unsigned inlen, void *out, unsigned outlen) { @@ -10713,7 +10705,7 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned double enctime = 0; if( logfile ) tm = clock(); { - for( uint32_t inlen; (inlen=fread(inbuf, 1, BS_BYTES, in)) > 0 ; ) { + for( uint32_t inlen; (inlen=BS_BYTES * fread(inbuf, BS_BYTES, 1, in)) > 0 ; ) { uint32_t outlen[2] = {0}; best = clist[0]; @@ -10748,15 +10740,15 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned if( compr ) { uint8_t packer = (compr << 4) | flags; // store block length + compressor + compr data - if( fwrite(&outlen[0], 1, 4, out) != 4 ) goto fail; + if( fwrite(&outlen[0], 4, 1, out) != 1 ) goto fail; if( fwrite(&packer, 1, 1, out) != 1 ) goto fail; - if( fwrite(outbuf[0], 1, outlen[0], out) != outlen[0] ) goto fail; + if( fwrite(outbuf[0], outlen[0], 1, out) != 1 ) goto fail; } else { uint8_t packer = 0; // store block length + no-compressor + raw data - if( fwrite(&inlen, 1, 4, out) != 4 ) goto fail; + if( fwrite(&inlen, 4, 1, out) != 1 ) goto fail; if( fwrite(&packer, 1, 1, out) != 1 ) goto fail; - if( fwrite(inbuf, 1, inlen, out) != inlen ) goto fail; + if( fwrite(inbuf, inlen, 1, out) != 1 ) goto fail; } total_in += inlen; @@ -10790,8 +10782,8 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder - uint8_t block8; if( fread(&block8, 1,1, in ) < 1 ) return 0; - uint8_t excess8; if( fread(&excess8, 1,1, in ) < 1 ) return 0; + uint8_t block8; if( fread(&block8, 1,1, in ) != 1 ) return 0; + uint8_t excess8; if( fread(&excess8, 1,1, in ) != 1 ) return 0; uint64_t BLOCK_SIZE = 1ull << block8; uint64_t EXCESS = 1ull << excess8; @@ -10803,15 +10795,15 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder double dectime = 0; if(logfile) tm = clock(); { - for(uint32_t inlen=0, loop=0;fread(&inlen, 1, sizeof(inlen), in)>0;++loop) { + for(uint32_t inlen=0, loop=0;fread(&inlen, sizeof(inlen), 1, in) == 1;++loop) { if (inlen>(BLOCK_SIZE+EXCESS)) goto fail; uint8_t packer; - if( fread(&packer, 1,sizeof(packer), in) <= 0 ) goto fail; + if( fread(&packer, sizeof(packer),1, in) != 1 ) goto fail; if(packer) { // read compressed - if (fread(inbuf, 1, inlen, in)!=inlen) goto fail; + if (fread(inbuf, inlen,1, in)!=1) goto fail; // decompress uint8_t compressor = packer >> 4; @@ -10819,11 +10811,11 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder if (!outlen) goto fail; } else { // read raw - if (fread(outbuf, 1, inlen, in)!=inlen) goto fail; + if (fread(outbuf, inlen,1, in)!=1) goto fail; outlen=inlen; } - if (fwrite(outbuf, 1, outlen, out) != outlen) { + if (fwrite(outbuf, outlen, 1, out) != 1) { perror("fwrite() failed"); goto fail; } diff --git a/engine/split/3rd_https.h b/engine/split/3rd_https.h index 3a0b574..d8df4a5 100644 --- a/engine/split/3rd_https.h +++ b/engine/split/3rd_https.h @@ -17378,10 +17378,10 @@ extern const ltc_math_descriptor gmp_desc; /* ---- LTC_BASE64 Routines ---- */ #ifdef LTC_BASE64 -int base64_encode(const unsigned char *in, unsigned long len, +int base64_encodex(const unsigned char *in, unsigned long len, //< @r-lyeh +x unsigned char *out, unsigned long *outlen); -int base64_decode(const unsigned char *in, unsigned long len, +int base64_decodex(const unsigned char *in, unsigned long len, //< @r-lyeh +x unsigned char *out, unsigned long *outlen); #endif @@ -30099,7 +30099,7 @@ static int _base64_decode_internal(const unsigned char *in, unsigned long inlen @param outlen [in/out] The max size and resulting size of the decoded data @return CRYPT_OK if successful */ -int base64_decode(const unsigned char *in, unsigned long inlen, +int base64_decodex(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen) { return _base64_decode_internal(in, inlen, out, outlen, map_base64, relaxed); diff --git a/engine/split/v4k.x.inl b/engine/split/v4k.x.inl index 417f40e..2516ef4 100644 --- a/engine/split/v4k.x.inl +++ b/engine/split/v4k.x.inl @@ -15,6 +15,7 @@ // 3rd party libs #define ARCHIVE_C // archive.c +#define BASE64_C // base64.c #define COMPRESS_C // compress.c #define ENET_IMPLEMENTATION // enet #define GJK_C // gjk @@ -182,6 +183,7 @@ static char *ui_filter = 0; else if(!strcmp(id, "idle") && nargs ==1) push(ev, input_idle(pop(ev))); {{FILE:3rd_eval.h}} {{FILE:3rd_luadebugger.h}} +{{FILE:3rd_base64.h}} //#define SQLITE_OMIT_LOAD_EXTENSION //#define SQLITE_CORE 1 //#define SQLITE_DEBUG 1 diff --git a/engine/split/v4k_audio.c b/engine/split/v4k_audio.c index ecc5e62..4d1462a 100644 --- a/engine/split/v4k_audio.c +++ b/engine/split/v4k_audio.c @@ -12,7 +12,7 @@ static AudioUnit midi_out_handle = 0; static void midi_init() { #if is(win32) && !is(gcc) if( midiOutGetNumDevs() != 0 ) { - midiOutOpen(&midi_out_handle, 0, 0, 0, 0); + midiOutOpen(&midi_out_handle, 0, 0, 0, 0); } #elif is(osx) AUGraph graph; @@ -291,17 +291,17 @@ int audio_init( int flags ) { ma_backend_wasapi, // WASAPI | Windows Vista+ ma_backend_dsound, // DirectSound | Windows XP+ ma_backend_winmm, // WinMM | Windows XP+ (may work on older versions, but untested) - ma_backend_coreaudio, // Core Audio | macOS, iOS + ma_backend_coreaudio, // Core Audio | macOS, iOS ma_backend_pulseaudio, // PulseAudio | Cross Platform (disabled on Windows, BSD and Android) - ma_backend_alsa, // ALSA | Linux - ma_backend_oss, // OSS | FreeBSD + ma_backend_alsa, // ALSA | Linux + ma_backend_oss, // OSS | FreeBSD ma_backend_jack, // JACK | Cross Platform (disabled on BSD and Android) ma_backend_opensl, // OpenSL ES | Android (API level 16+) ma_backend_webaudio, // Web Audio | Web (via Emscripten) - ma_backend_sndio, // sndio | OpenBSD - ma_backend_audio4, // audio(4) | NetBSD, OpenBSD + ma_backend_sndio, // sndio | OpenBSD + ma_backend_audio4, // audio(4) | NetBSD, OpenBSD ma_backend_aaudio, // AAudio | Android 8+ - ma_backend_custom, // Custom | Cross Platform + ma_backend_custom, // Custom | Cross Platform ma_backend_null, // Null | Cross Platform (not used on Web) // Lowest priority #endif diff --git a/engine/split/v4k_cook.c b/engine/split/v4k_cook.c index 179a49b..f2dd7e1 100644 --- a/engine/split/v4k_cook.c +++ b/engine/split/v4k_cook.c @@ -23,12 +23,13 @@ typedef struct cook_subscript_t { char *script; char *outname; int compress_level; + uint64_t pass_ns, gen_ns, exe_ns, zip_ns; } cook_subscript_t; typedef struct cook_script_t { cook_subscript_t cs[8]; - int num_passes; + uint64_t pass_ns, gen_ns, exe_ns, zip_ns; } cook_script_t; static @@ -42,6 +43,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out // - if no script is going to be generated, output is in fact input file. // - no compression is going to be required. cook_subscript_t cs = { 0 }; + cs.gen_ns -= time_ns(); // reuse script heap from last call if possible (optimization) static __thread char *script = 0; @@ -54,6 +56,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out map_clear(symbols); map_clear(groups); + map_find_or_add(symbols, "INFILE", STRDUP(infile)); map_find_or_add(symbols, "INPUT", STRDUP(infile)); map_find_or_add(symbols, "PRETTY", STRDUP(infile + ART_SKIP_ROOT)); // pretty (truncated) input (C:/prj/V4K/art/file.wav -> file.wav) @@ -105,10 +108,15 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } lines[i] = line = nl; +#if 0 static thread_mutex_t lock, *init = 0; if(!init) thread_mutex_init(init = &lock); thread_mutex_lock( &lock ); system(line); // strcatf(&script, "%s\n", line); thread_mutex_unlock( &lock ); +#else + // append line + strcatf(&script, "%s\n", line); +#endif continue; } @@ -256,15 +264,15 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } } char *compression = 0; - for each_map(groups, char*, key, char*, val) { - if( isdigit(key[0]) ) { + for each_map_ptr_sorted(groups, char*, key, char*, val) { // sorted iteration, so hopefully '0' no compression gets evaluated first + if( !compression && isdigit((*key)[0]) ) { char *comma = va(",%s,", ext); - if( !strcmpi(val,ext) || strbegi(val, comma+1) || strstri(val, comma) || strendi(val, va(",%s", ext))) { - compression = key; + if( !strcmpi(*val,ext) || strbegi(*val, comma+1) || strstri(*val, comma) || strendi(*val, va(",%s", ext))) { + compression = (*key); } comma = va(",%s,", belongs_to); - if( !strcmpi(val,ext) || strbegi(val, comma+1) || strstri(val, comma) || strendi(val, va(",%s", ext))) { - compression = key; + if( !strcmpi(*val,ext) || strbegi(*val, comma+1) || strstri(*val, comma) || strendi(*val, va(",%s", ext))) { + compression = (*key); } } } @@ -324,6 +332,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } cs.outname = cs.outname ? cs.outname : (char*)infile; + cs.gen_ns += time_ns(); ASSERT(mcs.num_passes < countof(mcs.cs)); mcs.cs[mcs.num_passes++] = cs; @@ -355,8 +364,8 @@ array(struct fs) zipscan_filter(int threadid, int numthreads) { array(struct fs) fs = 0; for( int i = 0, end = array_count(fs_now); i < end; ++i ) { // during workload distribution, we assign random files to specific thread buckets. - // we achieve this by hashing the basename of the file. we used to hash also the path - // long time ago but that is less resilient to file relocations across the repository. + // we achieve this by hashing the basename of the file. we used to hash also the path + // long time ago but that is less resilient to file relocations across the repository. // excluding the file extension from the hash also helps from external file conversions. char *fname = file_name(fs_now[i].fname); char *sign = strrchr(fname, '@'); if(sign) *sign = '\0'; // special char (multi-pass cooks) @@ -455,6 +464,11 @@ int cook(void *userdata) { volatile int *progress = &job->progress; *progress = 0; + // preload a few large binaries +// dll("tools/furnace.exe", 0); +// dll("tools/assimp-vc143-mt.dll", 0); +// dll("tools/ffmpeg.exe", 0); + // scan disk from fs_now snapshot array(struct fs) filtered = zipscan_filter(job->threadid, job->numthreads); //printf("Scanned: %d items found\n", array_count(now)); @@ -493,6 +507,13 @@ int cook(void *userdata) { zip_append_file/*_timeinfo*/(z, deleted[i], comment, in, 0/*, tm_now*/); fclose(in); } + + // generate cook metrics. you usually do `game.exe --cook-stats && (type *.csv | sort /R > cook.csv)` + static __thread FILE *statsfile = 0; + if(flag("--cook-stats")) + fseek(statsfile = fopen(va("cook%d.csv",job->threadid), "a+t"), 0L, SEEK_END); + if(statsfile && ftell(statsfile) == 0) fprintf(statsfile,"%10s,%10s,%10s,%10s,%10s, %s\n","+total_ms","gen_ms","exe_ms","zip_ms","pass","file"); + // added or changed files for( int i = 0, end = array_count(uncooked); i < end && !cook_cancelling; ++i ) { *progress = ((i+1) == end ? 90 : (i * 90) / end); // (i+i>0) * 100.f / end; @@ -519,43 +540,46 @@ int cook(void *userdata) { } } - // invoke cooking script and recap status - const char *rc_output = app_exec(cs.script); - int rc = atoi(rc_output); - int outlen = file_size(cs.outfile); - int failed = cs.script[0] ? rc || !outlen : 0; - - // print errors - if( failed ) { - PRINTF("Import failed: %s while executing:\n%s\nReturned:\n%s\n", cs.outname, cs.script, rc_output); - continue; - } - - // special char (multi-pass cook). newly generated file: refresh values - // ensure newly created files by cook are also present on repo/disc for further cook passes - if( pass > 0 ) { // && strchr(cs.outname, '@') ) { // pass>0 is a small optimization // special char (multi-pass cooks) - file_delete(cs.outname); - file_move(cs.outfile, cs.outname); - inlen = file_size(infile = cs.outfile = cs.outname); - } + // invoke cooking script + mcs.cs[pass].exe_ns -= time_ns(); + // invoke cooking script + const char *rc_output = app_exec(cs.script); + // recap status + int rc = atoi(rc_output); + // int outlen = file_size(cs.outfile); + int failed = rc; // cs.script[0] ? rc || !outlen : 0; + // print errors + if( failed ) { + PRINTF("Import failed: %s while executing:\n%s\nReturned:\n%s\n", cs.outname, cs.script, rc_output); + continue; + } + if( pass > 0 ) { // (multi-pass cook) + // newly generated file: refresh values + // ensure newly created files by cook are also present on repo/disc for further cook passes + file_delete(cs.outname); + file_move(cs.outfile, cs.outname); + inlen = file_size(infile = cs.outfile = cs.outname); + } + mcs.cs[pass].exe_ns += time_ns(); // process only if included. may include optional compression. + mcs.cs[pass].zip_ns -= time_ns(); if( cs.compress_level >= 0 ) { - FILE *in = fopen(cs.outfile, "rb"); - -#if 0 - struct stat st; stat(infile, &st); - struct tm *timeinfo = localtime(&st.st_mtime); - ASSERT(timeinfo); -#endif + FILE *in = fopen(cs.outfile ? cs.outfile : infile, "rb"); + if(!in) in = fopen(infile, "rb"); char *comment = va("%d", inlen); - if( !zip_append_file/*_timeinfo*/(z, infile, comment, in, cs.compress_level/*, timeinfo*/) ) { + if( !zip_append_file(z, infile, comment, in, cs.compress_level) ) { PANIC("failed to add processed file into %s: %s(%s)", zipfile, cs.outname, infile); } fclose(in); } + mcs.cs[pass].zip_ns += time_ns(); + + // stats per subscript + mcs.cs[pass].pass_ns = mcs.cs[pass].gen_ns + mcs.cs[pass].exe_ns + mcs.cs[pass].zip_ns; + if(statsfile) fprintf(statsfile, "%10.f,%10.f,%10.f,%10.f,%10d, \"%s\"\n", mcs.cs[pass].pass_ns/1e6, mcs.cs[pass].gen_ns/1e6, mcs.cs[pass].exe_ns/1e6, mcs.cs[pass].zip_ns/1e6, pass+1, infile); } } @@ -584,13 +608,13 @@ int cook_async( void *userdata ) { // tcc: only a single running thread shall pass, because of racing shared state due to missing thread_local support at compiler level ifdef(tcc, thread_mutex_lock( job->lock )); - ifdef(osx, thread_mutex_lock( job->lock )); + ifdef(osx, thread_mutex_lock( job->lock )); // @todo: remove silicon mac M1 hack int ret = cook(userdata); // tcc: only a single running thread shall pass, because of racing shared state due to missing thread_local support at compiler level + ifdef(osx, thread_mutex_unlock( job->lock )); // @todo: remove silicon mac M1 hack ifdef(tcc, thread_mutex_unlock( job->lock )); - ifdef(osx, thread_mutex_unlock( job->lock )); thread_exit( ret ); return ret; @@ -613,7 +637,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { HOME[ strlen(HOME) - strlen(file_name(cook_ini)) ] = '\0'; // -> tools/ @leak #endif - ART_LEN = 0; //strlen(app_path()); + ART_LEN = 0; //strlen(app_path()); /* = MAX_PATH; for each_substring(ART, ",", art_folder) { ART_LEN = mini(ART_LEN, strlen(art_folder)); @@ -669,6 +693,14 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { EDITOR = out; // @leak assert( EDITOR[strlen(EDITOR) - 1] == '/' ); } + + // small optimization for upcoming parser: remove whole comments from file + array(char*) lines = strsplit(rules, "\r\n"); + for( int i = 0; i < array_count(lines); ) { + if( lines[i][0] == ';' ) array_erase_slow(lines, i); + else ++i; + } + rules = STRDUP( strjoin(lines, "\n") ); } if( !masks ) { @@ -715,7 +747,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { if( strend(fname, ".obj") ) { char header[4] = {0}; for( FILE *in = fopen(fname, "rb"); in; fclose(in), in = NULL) { - fread(header, 1, 2, in); + fread(header, 2, 1, in); } if( !memcmp(header, "\x64\x86", 2) ) continue; if( !memcmp(header, "\x00\x00", 2) ) continue; @@ -727,7 +759,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { snprintf(extdot, 32, "%s.", dot); // .png -> .png. // exclude vc/gcc/clang files if( strstr(fname, ".a.o.pdb.lib.ilk.exp.dSYM.") ) // must end with dot - continue; + continue; } // @todo: normalize path & rebase here (absolute to local) @@ -751,7 +783,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { fi.stamp = file_stamp10(fname); // timestamp in base10(yyyymmddhhmmss) array_push(fs_now, fi); - } + } cook_debug = !!( flags & COOK_DEBUGLOG ); cook_cancelable = !!( flags & COOK_CANCELABLE ); diff --git a/engine/split/v4k_data.c b/engine/split/v4k_data.c index 880fbec..9036ede 100644 --- a/engine/split/v4k_data.c +++ b/engine/split/v4k_data.c @@ -1,77 +1,4 @@ -static -array(char) base64__decode(const char *in_, unsigned inlen) { - // from libtomcrypt - #define BASE64_ENCODE_OUT_SIZE(s) (((s) + 2) / 3 * 4) - #define BASE64_DECODE_OUT_SIZE(s) (((s)) / 4 * 3) - -#if 1 - unsigned long outlen = BASE64_DECODE_OUT_SIZE(inlen); - array(char) out_ = 0; array_resize(out_, outlen); - - if( base64_decode((const unsigned char *)in_, (unsigned long)inlen, (unsigned char *)out_, &outlen) != CRYPT_OK ) { - array_free(out_); - return 0; - } - - array_resize(out_, outlen); - return out_; -#else - unsigned outlen = BASE64_DECODE_OUT_SIZE(inlen); - array(char) out_ = 0; array_resize(out_, outlen); - - // based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN) - uint_least32_t v; - unsigned ii, io, rem; - char *out = (char *)out_; - const unsigned char *in = (const unsigned char *)in_; - const uint8_t base64dec_tab[256]= { - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255, 62,255,255, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255, 0,255,255, - 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255, 63, - 255, 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,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - }; - - for (io = 0, ii = 0,v = 0, rem = 0; ii < inlen; ii ++) { - unsigned char ch; - if (isspace(in[ii])) - continue; - if ((in[ii]=='=') || (!in[ii])) - break; /* stop at = or null character*/ - ch = base64dec_tab[(unsigned char)in[ii]]; - if (ch == 255) - break; /* stop at a parse error */ - v = (v<<6) | ch; - rem += 6; - if (rem >= 8) { - rem -= 8; - if (io >= outlen) - return (array_free(out_), NULL); /* truncation is failure */ - out[io ++] = (v >> rem) & 255; - } - } - if (rem >= 8) { - rem -= 8; - if (io >= outlen) - return (array_free(out_), NULL); /* truncation is failure */ - out[io ++] = (v >> rem) & 255; - } - return (array_resize(out_, io), out_); -#endif -} - static array(json5) roots; static array(char*) sources; @@ -207,7 +134,7 @@ static void *xml_path(struct xml *node, char *path, int down) { // Find the first sibling with the given tag name (may be the same node) struct xml *next = down ? xml_find_down(node, tag) : xml_find(node, tag); return xml_path(next, &path[ sep ], 1); - } + } } if( type == '$' ) { return (void*)( node->down ? xml_text( node->down ) : xml_tag( node ) ); @@ -236,7 +163,7 @@ unsigned (xml_count)(char *key) { if( !node ) return 0; const char *tag = xml_tag(node); unsigned count = 1; - while( (node = xml_find_next(node, tag)) != 0) ++count; + while( (node = xml_find_next(node, tag)) != 0) ++count; return count; } array(char) (xml_blob)(char *key) { // base64 blob @@ -244,7 +171,7 @@ array(char) (xml_blob)(char *key) { // base64 blob if( !node ) return 0; if( !strchr(key, '$') ) return 0; const char *data = (const char*)node; - array(char) out = base64__decode(data, strlen(data)); // either array of chars (ok) or null (error) + array(char) out = base64_decode(data, strlen(data)); // either array of chars (ok) or null (error) return out; } diff --git a/engine/split/v4k_editor.c b/engine/split/v4k_editor.c index 7607c41..21e812c 100644 --- a/engine/split/v4k_editor.c +++ b/engine/split/v4k_editor.c @@ -185,7 +185,7 @@ int engine_tick() { window_fps_lock( hz < 5 ? 5 : hz ); } else { // window_fps_lock( editor_hz ); - } + } return 0; } @@ -532,7 +532,7 @@ int gizmo(vec3 *pos, vec3 *rot, vec3 *sca) { // -- localization kit -static const char *kit_lang = "enUS", *kit_langs = +static const char *kit_lang = "enUS", *kit_langs = "enUS,enGB," "frFR," "esES,esAR,esMX," @@ -547,7 +547,7 @@ static const char *kit_lang = "enUS", *kit_langs = static map(char*,char*) kit_ids; static map(char*,char*) kit_vars; -#ifndef KIT_FMT_ID2 +#ifndef KIT_FMT_ID2 #define KIT_FMT_ID2 "%s.%s" #endif diff --git a/engine/split/v4k_editor.h b/engine/split/v4k_editor.h index a76a343..4aa5356 100644 --- a/engine/split/v4k_editor.h +++ b/engine/split/v4k_editor.h @@ -6,8 +6,8 @@ //API void editor(); //API bool editor_active(); -API vec3 editor_pick(float mouse_x, float mouse_y); -API char* editor_path(const char *path); +API vec3 editor_pick(float mouse_x, float mouse_y); +API char* editor_path(const char *path); API float* engine_getf(const char *key); API int* engine_geti(const char *key); diff --git a/engine/split/v4k_extend.c b/engine/split/v4k_extend.c index 5d410a8..866d771 100644 --- a/engine/split/v4k_extend.c +++ b/engine/split/v4k_extend.c @@ -23,7 +23,7 @@ void* dll(const char *fname, const char *symbol) { fname = (const char *)buf; } else { return NULL; - } + } } #if is(win32) return (void*)GetProcAddress(fname ? LoadLibraryA(fname) : GetModuleHandleA(NULL), symbol); diff --git a/engine/split/v4k_file.c b/engine/split/v4k_file.c index 30cbe29..517c4f9 100644 --- a/engine/split/v4k_file.c +++ b/engine/split/v4k_file.c @@ -221,29 +221,29 @@ array(char*) file_list(const char *pathmasks) { ASSERT(strend(cwd, "/"), "Error: dirs like '%s' must end with slash", cwd); - dir *d = dir_open(cwd, strstr(masks,"**") ? "r" : ""); - if( d ) { - for( int i = 0; i < dir_count(d); ++i ) { - if( dir_file(d,i) ) { - // dir_name() should return full normalized paths "C:/prj/v4k/demos/art/fx/fxBloom.fs". should exclude system dirs as well - char *entry = dir_name(d,i); - char *fname = file_name(entry); + dir *d = dir_open(cwd, strstr(masks,"**") ? "r" : ""); + if( d ) { + for( int i = 0; i < dir_count(d); ++i ) { + if( dir_file(d,i) ) { + // dir_name() should return full normalized paths "C:/prj/v4k/demos/art/fx/fxBloom.fs". should exclude system dirs as well + char *entry = dir_name(d,i); + char *fname = file_name(entry); - int allowed = 0; - for each_substring(masks,";",mask) { - allowed |= strmatch(fname, mask); + int allowed = 0; + for each_substring(masks,";",mask) { + allowed |= strmatch(fname, mask); + } + if( !allowed ) continue; + + // if( strstr(fname, "/.") ) continue; // @fixme: still needed? useful? + + // insert copy + char *copy = STRDUP(entry); + array_push(list, copy); } - if( !allowed ) continue; - - // if( strstr(fname, "/.") ) continue; // @fixme: still needed? useful? - - // insert copy - char *copy = STRDUP(entry); - array_push(list, copy); } + dir_close(d); } - dir_close(d); - } } array_sort(list, strcmp); @@ -295,7 +295,7 @@ char *file_counter(const char *name) { static __thread map(char*, int) ext_counters; if(!init) map_init(ext_counters, less_str, hash_str), init = '\1'; - char *base = va("%s",name), *ext = file_ext(name); + char *base = va("%s",name), *ext = file_ext(name); if(ext && ext[0]) *strstr(base, ext) = '\0'; int *counter = map_find_or_add(ext_counters, ext, 0); @@ -318,7 +318,7 @@ void* file_sha1(const char *file) { // 20bytes sha1_init(&hs); for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { sha1_process(&hs, (const unsigned char *)buf, inlen); } } @@ -332,7 +332,7 @@ void* file_md5(const char *file) { // 16bytes md5_init(&hs); for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { md5_process(&hs, (const unsigned char *)buf, inlen); } } @@ -345,7 +345,7 @@ void* file_crc32(const char *file) { // 4bytes unsigned crc = 0; for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { crc = zip__crc32(crc, buf, inlen); // unsigned int stbiw__crc32(unsigned char *buffer, int len) } } @@ -566,7 +566,7 @@ typedef struct archive_dir { } archive_dir; static archive_dir *dir_mount; -static archive_dir *dir_cache; +static archive_dir *dir_cache; #ifndef MAX_CACHED_FILES // @todo: should this be MAX_CACHED_SIZE (in MiB) instead? #define MAX_CACHED_FILES 32 // @todo: should we cache the cooked contents instead? ie, stbi() result instead of file.png? @@ -615,7 +615,7 @@ void vfs_reload() { #define ARK_SWAP32(x) (x) #define ARK_SWAP64(x) (x) #define ARK_REALLOC REALLOC -static uint64_t ark_fget64( FILE *in ) { uint64_t v; fread( &v, 1, 8, in ); return ARK_SWAP64(v); } +static uint64_t ark_fget64( FILE *in ) { uint64_t v; fread( &v, 8, 1, in ); return ARK_SWAP64(v); } void ark_list( const char *infile, zip **z ) { for( FILE *in = fopen(infile, "rb"); in; fclose(in), in = 0 ) while(!feof(in)) { @@ -789,13 +789,13 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u while( pathfile[0] == '.' && (pathfile[1] == '/' || pathfile[1] == '\\') ) pathfile += 2; // if (pathfile[0] == '/' || pathfile[1] == ':') return file_load(pathfile, size_out); // @fixme: handle current cooked /home/V4K or C:/V4K path cases within zipfiles - if( size_out ) *size_out = 0; - if( strend(pathfile, "/") ) return 0; // it's a dir - static __thread map(char*,int) misses = 0, *init = 0; if(!init) init = misses, map_init(misses, less_str, hash_str); - int *found = map_find_or_add_allocated_key(misses, STRDUP(pathfile), -1); // [-1]non-init,[false]could not cook,[true]cooked - if( found && *found == 0 ) { - return 0; - } +if( size_out ) *size_out = 0; +if( strend(pathfile, "/") ) return 0; // it's a dir +static __thread map(char*,int) misses = 0, *init = 0; if(!init) init = misses, map_init(misses, less_str, hash_str); +int *found = map_find_or_add_allocated_key(misses, STRDUP(pathfile), -1); // [-1]non-init,[false]could not cook,[true]cooked +if( found && *found == 0 ) { + return 0; +} //{ // exclude garbage from material names @@ -841,7 +841,7 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u } // search (cache) - if( !ptr && ! is(osx) ) { + if( !ptr && !is(osx) ) { // @todo: remove silicon mac M1 hack ptr = cache_lookup(lookup_id, &size); } @@ -884,7 +884,7 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u char *cmd = va("%scook" ifdef(osx,".osx",ifdef(linux,".linux",".exe"))" %s %s --cook-ini=%s --cook-additive --cook-jobs=1 --quiet", TOOLS, group1, group2, COOK_INI); // cook groups - int rc = system(cmd); + int rc = atoi(app_exec(cmd)); if(rc < 0) PANIC("cannot invoke `%scook` (return code %d)", TOOLS, rc); vfs_reload(); // @todo: optimize me. it is waaay inefficent to reload the whole VFS layout after cooking a single asset @@ -999,33 +999,33 @@ void* cache_insert(const char *pathfile, void *ptr, int size) { // append key/va // keep cached files within limits thread_mutex_lock(&cache_mutex); - // append to cache - archive_dir zero = {0}, *old = dir_cache; - *(dir_cache = REALLOC(0, sizeof(archive_dir))) = zero; - dir_cache->next = old; - dir_cache->path = STRDUP(pathfile); - dir_cache->size = size; - dir_cache->data = REALLOC(0, size+1); - memcpy(dir_cache->data, ptr, size); size[(char*)dir_cache->data] = 0; // copy+terminator + // append to cache + archive_dir zero = {0}, *old = dir_cache; + *(dir_cache = REALLOC(0, sizeof(archive_dir))) = zero; + dir_cache->next = old; + dir_cache->path = STRDUP(pathfile); + dir_cache->size = size; + dir_cache->data = REALLOC(0, size+1); + memcpy(dir_cache->data, ptr, size); size[(char*)dir_cache->data] = 0; // copy+terminator void *found = 0; - static int added = 0; - if( added < MAX_CACHED_FILES ) { - ++added; - } else { - // remove oldest cache entry - for( archive_dir *prev = dir_cache, *dir = prev; dir ; prev = dir, dir = dir->next ) { - if( !dir->next ) { - prev->next = 0; // break link + static int added = 0; + if( added < MAX_CACHED_FILES ) { + ++added; + } else { + // remove oldest cache entry + for( archive_dir *prev = dir_cache, *dir = prev; dir ; prev = dir, dir = dir->next ) { + if( !dir->next ) { + prev->next = 0; // break link found = dir->data; - dir->path = REALLOC(dir->path, 0); - dir->data = REALLOC(dir->data, 0); - dir = REALLOC(dir, 0); + dir->path = REALLOC(dir->path, 0); + dir->data = REALLOC(dir->data, 0); + dir = REALLOC(dir, 0); break; + } } } - } thread_mutex_unlock(&cache_mutex); @@ -1126,7 +1126,9 @@ ini_t ini_from_mem(const char *data) { } ini_t ini(const char *filename) { - return ini_from_mem(file_read(filename)); + char *kv = file_read(filename); + if(!kv) kv = vfs_read(filename); + return ini_from_mem(kv); } bool ini_write(const char *filename, const char *section, const char *key, const char *value) { diff --git a/engine/split/v4k_font.c b/engine/split/v4k_font.c index ff77d5f..858915c 100644 --- a/engine/split/v4k_font.c +++ b/engine/split/v4k_font.c @@ -1667,7 +1667,6 @@ void font_scales(const char *tag, float h1, float h2, float h3, float h4, float // 1. Calculate and save a bunch of useful variables and put them in the global font variable. void font_face_from_mem(const char *tag, const void *ttf_data, unsigned ttf_len, float font_size, unsigned flags) { unsigned index = *tag - FONT_FACE1[0]; - if( index >= 8 ) return; if( font_size <= 0 || font_size > 72 ) return; if( !ttf_data || !ttf_len ) return; diff --git a/engine/split/v4k_input.c b/engine/split/v4k_input.c index eff0be6..acaf69a 100644 --- a/engine/split/v4k_input.c +++ b/engine/split/v4k_input.c @@ -657,15 +657,15 @@ bool input_touch_active() { #endif // !is(ems) int ui_mouse() { - ui_label2_float("X", input(MOUSE_X)); - ui_label2_float("Y", input(MOUSE_Y)); - ui_label2_float("Wheel", input(MOUSE_W)); - ui_separator(); - ui_label2_bool("Left", input(MOUSE_L)); - ui_label2_bool("Middle", input(MOUSE_M)); - ui_label2_bool("Right", input(MOUSE_R)); - ui_separator(); - for( int i = 0; i <= CURSOR_SW_AUTO; ++i ) if(ui_button(va("Cursor shape #%d", i))) window_cursor_shape(i); + ui_label2_float("X", input(MOUSE_X)); + ui_label2_float("Y", input(MOUSE_Y)); + ui_label2_float("Wheel", input(MOUSE_W)); + ui_separator(); + ui_label2_bool("Left", input(MOUSE_L)); + ui_label2_bool("Middle", input(MOUSE_M)); + ui_label2_bool("Right", input(MOUSE_R)); + ui_separator(); + for( int i = 0; i <= CURSOR_SW_AUTO; ++i ) if(ui_button(va("Cursor shape #%d", i))) window_cursor_shape(i); return 0; } @@ -704,7 +704,7 @@ int ui_keyboard() { } int ui_gamepad(int gamepad_id) { - input_use(gamepad_id); + input_use(gamepad_id); bool connected = !!input(GAMEPAD_CONNECTED); @@ -712,48 +712,48 @@ int ui_gamepad(int gamepad_id) { if( !connected ) ui_disable(); - ui_separator(); + ui_separator(); - ui_label2_bool("A", input(GAMEPAD_A) ); - ui_label2_bool("B", input(GAMEPAD_B) ); - ui_label2_bool("X", input(GAMEPAD_X) ); - ui_label2_bool("Y", input(GAMEPAD_Y) ); - ui_label2_bool("Up", input(GAMEPAD_UP) ); - ui_label2_bool("Down", input(GAMEPAD_DOWN) ); - ui_label2_bool("Left", input(GAMEPAD_LEFT) ); - ui_label2_bool("Right", input(GAMEPAD_RIGHT) ); - ui_label2_bool("Menu", input(GAMEPAD_MENU) ); - ui_label2_bool("Start", input(GAMEPAD_START) ); + ui_label2_bool("A", input(GAMEPAD_A) ); + ui_label2_bool("B", input(GAMEPAD_B) ); + ui_label2_bool("X", input(GAMEPAD_X) ); + ui_label2_bool("Y", input(GAMEPAD_Y) ); + ui_label2_bool("Up", input(GAMEPAD_UP) ); + ui_label2_bool("Down", input(GAMEPAD_DOWN) ); + ui_label2_bool("Left", input(GAMEPAD_LEFT) ); + ui_label2_bool("Right", input(GAMEPAD_RIGHT) ); + ui_label2_bool("Menu", input(GAMEPAD_MENU) ); + ui_label2_bool("Start", input(GAMEPAD_START) ); - ui_separator(); + ui_separator(); - ui_label2_float("Left pad x", input(GAMEPAD_LPADX) ); - ui_label2_float("Left pad y", input(GAMEPAD_LPADY) ); - ui_label2_float("Left trigger", input(GAMEPAD_LT) ); - ui_label2_bool("Left bumper", input(GAMEPAD_LB) ); - ui_label2_bool("Left thumb", input(GAMEPAD_LTHUMB) ); + ui_label2_float("Left pad x", input(GAMEPAD_LPADX) ); + ui_label2_float("Left pad y", input(GAMEPAD_LPADY) ); + ui_label2_float("Left trigger", input(GAMEPAD_LT) ); + ui_label2_bool("Left bumper", input(GAMEPAD_LB) ); + ui_label2_bool("Left thumb", input(GAMEPAD_LTHUMB) ); - vec2 v = input_filter_deadzone( input2(GAMEPAD_LPADX), 0.1f ); - ui_label2_float("Filtered pad x", v.x); - ui_label2_float("Filtered pad y", v.y); + vec2 v = input_filter_deadzone( input2(GAMEPAD_LPADX), 0.1f ); + ui_label2_float("Filtered pad x", v.x); + ui_label2_float("Filtered pad y", v.y); - ui_separator(); + ui_separator(); - ui_label2_float("Right pad x", input(GAMEPAD_RPADX) ); - ui_label2_float("Right pad y", input(GAMEPAD_RPADY) ); - ui_label2_float("Right trigger", input(GAMEPAD_RT) ); - ui_label2_bool("Right bumper", input(GAMEPAD_RB) ); - ui_label2_bool("Right thumb", input(GAMEPAD_RTHUMB) ); + ui_label2_float("Right pad x", input(GAMEPAD_RPADX) ); + ui_label2_float("Right pad y", input(GAMEPAD_RPADY) ); + ui_label2_float("Right trigger", input(GAMEPAD_RT) ); + ui_label2_bool("Right bumper", input(GAMEPAD_RB) ); + ui_label2_bool("Right thumb", input(GAMEPAD_RTHUMB) ); - vec2 w = input_filter_deadzone( input2(GAMEPAD_RPADX), 0.1f ); - ui_label2_float("Filtered pad x", w.x); - ui_label2_float("Filtered pad y", w.y); + vec2 w = input_filter_deadzone( input2(GAMEPAD_RPADX), 0.1f ); + ui_label2_float("Filtered pad x", w.x); + ui_label2_float("Filtered pad y", w.y); ui_enable(); input_use(0); return 0; - } +} int ui_gamepads() { for( int i = 0; i < 4; ++i ) ui_gamepad(i); diff --git a/engine/split/v4k_math.c b/engine/split/v4k_math.c index 1173d9b..d3cda60 100644 --- a/engine/split/v4k_math.c +++ b/engine/split/v4k_math.c @@ -615,9 +615,9 @@ void transpose44(mat44 m, const mat44 a) { // M[i][j] = A[j][i]; // @todo: test me // float det33 = M[0,0]*((M[1,1]*M[2,2])-(M[2,1]*M[1,2]))-M[0,1]*(M[1,0]*M[2,2]-M[2,0]*M[1,2])+M[0,2]*(M[1,0]*M[2,1]-M[2,0]*M[1,1]); // -// float det33 = +// float det33 = // rgt.x * fwd.y * upv.z - rgt.z * fwd.y * upv.x + -// rgt.y * fwd.z * upv.x - rgt.y * fwd.x * upv.z + +// rgt.y * fwd.z * upv.x - rgt.y * fwd.x * upv.z + // rgt.z * fwd.x * upv.y - rgt.x * fwd.z * upv.y; // // void transpose33(mat33 m, const mat33 a) { // M[i][j] = A[j][i]; @@ -853,7 +853,7 @@ void printi_( int *m, int ii, int jj ) { } void print_( float *m, int ii, int jj ) { for( int j = 0; j < jj; ++j ) { - for( int i = 0; i < ii; ++i ) printf("%8.3f ", *m++); + for( int i = 0; i < ii; ++i ) printf("%8.3f", *m++); puts(""); } // puts("---"); diff --git a/engine/split/v4k_netsync.c b/engine/split/v4k_netsync.c index e3a3348..ad792a0 100644 --- a/engine/split/v4k_netsync.c +++ b/engine/split/v4k_netsync.c @@ -508,7 +508,7 @@ char** server_poll(unsigned timeout_ms) { } } break; case MSG_RPC: { - event.type = NETWORK_EVENT_RPC; + event.type = NETWORK_EVENT_RPC; unsigned id = *(uint32_t*)ptr; ptr += 4; char *cmdline = ptr; char *resp = rpc(id, cmdline); @@ -519,7 +519,7 @@ char** server_poll(unsigned timeout_ms) { msg = va("%d req:%s res:%s", 0, cmdline, resp); } break; case MSG_RPC_RESP: { - event.type = NETWORK_EVENT_RPC_RESP; + event.type = NETWORK_EVENT_RPC_RESP; msg = va("%d %s", 0, va("%s", ptr)); } break; default: @@ -604,7 +604,7 @@ char** client_poll(unsigned timeout_ms) { } } break; case MSG_RPC: { - event.type = NETWORK_EVENT_RPC; + event.type = NETWORK_EVENT_RPC; unsigned id = *(uint32_t*)ptr; ptr += 4; char *cmdline = ptr; char *resp = rpc(id, cmdline); @@ -615,7 +615,7 @@ char** client_poll(unsigned timeout_ms) { msg = va("%d req:%s res:%s", 0, cmdline, resp); } break; case MSG_RPC_RESP: { - event.type = NETWORK_EVENT_RPC_RESP; + event.type = NETWORK_EVENT_RPC_RESP; msg = va("%d %s", 0, ptr); } break; default: @@ -639,7 +639,7 @@ char** client_poll(unsigned timeout_ms) { msg = va( "%d timeout", 0); FREE(event.peer->data); event.peer->data = NULL; - network_put(NETWORK_RANK, -1); + network_put(NETWORK_RANK, -1); network_put(NETWORK_LIVE, 0); break; } diff --git a/engine/split/v4k_obj.c b/engine/split/v4k_obj.c index 4139b7c..c692518 100644 --- a/engine/split/v4k_obj.c +++ b/engine/split/v4k_obj.c @@ -215,7 +215,7 @@ void *obj_free(void *o) { FREE(o); } return 0; -} + } return o; // cannot destroy: object is still referenced } @@ -463,21 +463,23 @@ void test_obj_scene() { static map(int,int) oms; static thread_mutex_t *oms_lock; void *obj_setmeta(void *o, const char *key, const char *value) { + void *ret = 0; do_threadlock(oms_lock) { if(!oms) map_init_int(oms); int *q = map_find_or_add(oms, intern(va("%llu-%s",obj_id((obj*)o),key)), 0); if(!*q && !value[0]) {} else *q = intern(value); - return quark(*q), o; + quark(*q), ret = o; } - return 0; // unreachable + return ret; } const char* obj_meta(const void *o, const char *key) { + const char *ret = 0; do_threadlock(oms_lock) { if(!oms) map_init_int(oms); int *q = map_find_or_add(oms, intern(va("%llu-%s",obj_id((obj*)o),key)), 0); - return quark(*q); + ret = quark(*q); } - return 0; // unreachable + return ret; } void *obj_setname(void *o, const char *name) { @@ -637,6 +639,8 @@ const char *p2s(const char *type, void *p) { else if( !strcmp(type, "vec2") ) return ftoa2(*(vec2*)p); else if( !strcmp(type, "vec3") ) return ftoa3(*(vec3*)p); else if( !strcmp(type, "vec4") ) return ftoa4(*(vec4*)p); + else if( !strcmp(type, "rgb") ) return rgbatoa(*(unsigned*)p); + else if( !strcmp(type, "rgba") ) return rgbatoa(*(unsigned*)p); else if( !strcmp(type, "char*") || !strcmp(type, "string") ) return va("%s", *(char**)p); // @todo: if strchr('*') assume obj, if reflected save guid: obj_id(); return tty_color(YELLOW), printf("p2s: cannot serialize `%s` type\n", type), tty_color(0), ""; @@ -653,6 +657,8 @@ bool s2p(void *P, const char *type, const char *str) { else if( !strcmp(type, "vec2") ) return !!memcpy(P, (v2 = atof2(str), &v2), sizeof(v2)); else if( !strcmp(type, "vec3") ) return !!memcpy(P, (v3 = atof3(str), &v3), sizeof(v3)); else if( !strcmp(type, "vec4") ) return !!memcpy(P, (v4 = atof4(str), &v4), sizeof(v4)); + else if( !strcmp(type, "rgb") ) return !!memcpy(P, (u = atorgba(str), &u), sizeof(u)); + else if( !strcmp(type, "rgba") ) return !!memcpy(P, (u = atorgba(str), &u), sizeof(u)); else if( !strcmp(type, "uintptr_t") ) return !!memcpy(P, (p = strtol(str, NULL, 16), &p), sizeof(p)); else if( !strcmp(type, "char*") || !strcmp(type, "string") ) { char substring[128] = {0}; @@ -905,9 +911,9 @@ char *entity_save(entity *self) { static void entity_register() { do_once { - STRUCT(entity, uintptr_t, cflags); - obj_extend(entity, save); -} + STRUCT(entity, uintptr_t, cflags); + obj_extend(entity, save); + } } AUTORUN{ diff --git a/engine/split/v4k_obj.h b/engine/split/v4k_obj.h index 96baed9..80f5904 100644 --- a/engine/split/v4k_obj.h +++ b/engine/split/v4k_obj.h @@ -40,17 +40,17 @@ bool id_valid(uintptr_t id); #define OBJHEADER \ struct { \ ifdef(debug, const char *objname;) \ - union { \ - uintptr_t objheader; \ - struct { \ - uintptr_t objtype:8; \ - uintptr_t objsizew:8; \ - uintptr_t objrefs:8; \ - uintptr_t objheap:1; \ - uintptr_t objcomps:1; /* << can be removed? check payload ptr instead? */ \ - uintptr_t objunused:64-8-8-8-1-1-ID_INDEX_BITS-ID_COUNT_BITS; /*19*/ \ - uintptr_t objid:ID_INDEX_BITS+ID_COUNT_BITS; /*16+3*/ \ - }; \ + union { \ + uintptr_t objheader; \ + struct { \ + uintptr_t objtype:8; \ + uintptr_t objsizew:8; \ + uintptr_t objrefs:8; \ + uintptr_t objheap:1; \ + uintptr_t objcomps:1; /* << can be removed? check payload ptr instead? */ \ + uintptr_t objunused:64-8-8-8-1-1-ID_INDEX_BITS-ID_COUNT_BITS; /*19*/ \ + uintptr_t objid:ID_INDEX_BITS+ID_COUNT_BITS; /*16+3*/ \ + }; \ }; \ array(struct obj*) objchildren; \ }; @@ -342,4 +342,3 @@ typedef enum OBJTYPE_BUILTINS { OBJTYPE_vec2i = 9, OBJTYPE_vec3i = 10, } OBJTYPE_BUILTINS; - diff --git a/engine/split/v4k_pack.c b/engine/split/v4k_pack.c index 3d56f38..b835797 100644 --- a/engine/split/v4k_pack.c +++ b/engine/split/v4k_pack.c @@ -626,7 +626,7 @@ static bool rd(void *buf, size_t len, size_t swap) { // return false any error a bool ret; if( in.fp ) { assert( !ferror(in.fp) && "invalid file handle (reader)" ); - ret = len == fread((char*)buf, 1, len, in.fp); + ret = 1 == fread((char*)buf, len, 1, in.fp); } else { assert( in.membuf && "invalid memory buffer (reader)"); assert( (in.offset + len <= in.memsize) && "memory overflow! (reader)"); @@ -2304,7 +2304,7 @@ void entropy( void *buf, unsigned n ) { FILE *fp = fopen( "/dev/urandom", "r" ); if( !fp ) assert(!"/dev/urandom open failed"); - size_t read = fread( buf, 1, n, fp ); + size_t read = n * fread( buf, n, 1, fp ); assert( read == n && "/dev/urandom read failed" ); fclose( fp ); } diff --git a/engine/split/v4k_pack.h b/engine/split/v4k_pack.h index 412f03d..0ab83b0 100644 --- a/engine/split/v4k_pack.h +++ b/engine/split/v4k_pack.h @@ -182,9 +182,9 @@ API char* ftoa3(vec3 v); API char* ftoa4(vec4 v); API float atof1(const char *s); -API vec2 atof2(const char *s); -API vec3 atof3(const char *s); -API vec4 atof4(const char *s); +API vec2 atof2(const char *s); +API vec3 atof3(const char *s); +API vec4 atof4(const char *s); API char* itoa1(int v); API char* itoa2(vec2i v); @@ -197,14 +197,14 @@ API vec3i atoi3(const char *s); // ---------------------------------------------------------------------------- // endianness -API int is_big(); -API int is_little(); +API int is_big(); +API int is_little(); -API uint16_t swap16( uint16_t x ); -API uint32_t swap32( uint32_t x ); -API uint64_t swap64( uint64_t x ); -API float swap32f(float n); -API double swap64f(double n); +API uint16_t swap16( uint16_t x ); +API uint32_t swap32( uint32_t x ); +API uint64_t swap64( uint64_t x ); +API float swap32f(float n); +API double swap64f(double n); API void swapf(float *a, float *b); API void swapf2(vec2 *a, vec2 *b); API void swapf3(vec3 *a, vec3 *b); @@ -222,17 +222,17 @@ API uint64_t big64(uint64_t n); // swap64 as big API float big32f(float n); // swap32 as big API double big64f(double n); // swap64 as big -API uint16_t* lil16p(void *p, int sz); -API uint32_t* lil32p(void *p, int sz); -API uint64_t* lil64p(void *p, int sz); -API float * lil32pf(void *p, int sz); -API double * lil64pf(void *p, int sz); +API uint16_t* lil16p(void *p, int sz); +API uint32_t* lil32p(void *p, int sz); +API uint64_t* lil64p(void *p, int sz); +API float * lil32pf(void *p, int sz); +API double * lil64pf(void *p, int sz); API uint16_t* big16p(void *p, int sz); API uint32_t* big32p(void *p, int sz); API uint64_t* big64p(void *p, int sz); API float * big32pf(void *p, int sz); -API double * big64pf(void *p, int sz); +API double * big64pf(void *p, int sz); #if is(cl) #define swap16 _byteswap_ushort @@ -386,3 +386,4 @@ API int saveb(unsigned char *buf, const char *format, ...); API int loadf(FILE *file, const char *format, ...); API int loadb(const unsigned char *buf, const char *format, ...); + diff --git a/engine/split/v4k_profile.c b/engine/split/v4k_profile.c index 7568aee..72731b4 100644 --- a/engine/split/v4k_profile.c +++ b/engine/split/v4k_profile.c @@ -7,50 +7,49 @@ int (profiler_enable)(bool on) { return profiler_enabled = on; } void (ui_profiler)() { // @todo: ui_plot() - double fps = window_fps(); - profile_setstat("Render.num_fps", fps); + double fps = window_fps(); + profile_setstat("Render.num_fps", fps); - enum { COUNT = 300 }; - - static float values[COUNT] = {0}; static int offset = 0; - values[offset=(offset+1)%COUNT] = fps; + enum { COUNT = 300 }; + static float values[COUNT] = {0}; static int offset = 0; + values[offset=(offset+1)%COUNT] = fps; // draw fps-meter: 300 samples, [0..70] range each, 70px height plot ... // ... unless filtering is enabled if( !(ui_filter && ui_filter[0]) ) { nk_layout_row_dynamic(ui_ctx, 70, 1); - int index = -1; - if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) { - for( int i = 0; i < COUNT; ++i ) { - nk_flags res = nk_chart_push(ui_ctx, (float)values[i]); - if( res & NK_CHART_HOVERING ) index = i; - if( res & NK_CHART_CLICKED ) index = i; - } - nk_chart_end(ui_ctx); + int index = -1; + if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) { + for( int i = 0; i < COUNT; ++i ) { + nk_flags res = nk_chart_push(ui_ctx, (float)values[i]); + if( res & NK_CHART_HOVERING ) index = i; + if( res & NK_CHART_CLICKED ) index = i; } + nk_chart_end(ui_ctx); + } - // hightlight 60fps, 36fps and 12fps - struct nk_rect space; nk_layout_peek(&space, ui_ctx); - struct nk_command_buffer *canvas = nk_window_get_canvas(ui_ctx); - nk_stroke_line(canvas, space.x+0,space.y-60,space.x+space.w,space.y-60, 1.0, nk_rgba(0,255,0,128)); - nk_stroke_line(canvas, space.x+0,space.y-36,space.x+space.w,space.y-36, 1.0, nk_rgba(255,255,0,128)); - nk_stroke_line(canvas, space.x+0,space.y-12,space.x+space.w,space.y-12, 1.0, nk_rgba(255,0,0,128)); + // hightlight 60fps, 36fps and 12fps + struct nk_rect space; nk_layout_peek(&space, ui_ctx); + struct nk_command_buffer *canvas = nk_window_get_canvas(ui_ctx); + nk_stroke_line(canvas, space.x+0,space.y-60,space.x+space.w,space.y-60, 1.0, nk_rgba(0,255,0,128)); + nk_stroke_line(canvas, space.x+0,space.y-36,space.x+space.w,space.y-36, 1.0, nk_rgba(255,255,0,128)); + nk_stroke_line(canvas, space.x+0,space.y-12,space.x+space.w,space.y-12, 1.0, nk_rgba(255,0,0,128)); - if( index >= 0 ) { - nk_tooltipf(ui_ctx, "%.2f fps", (float)values[index]); - } + if( index >= 0 ) { + nk_tooltipf(ui_ctx, "%.2f fps", (float)values[index]); + } } - for each_map_ptr_sorted(profiler, const char *, key, struct profile_t, val ) { - if( isnan(val->stat) ) { - float v = val->avg/1000.0; - ui_slider2(*key, &v, va("%.2f ms", val->avg/1000.0)); - } else { - float v = val->stat; - ui_slider2(*key, &v, va("%.2f", val->stat)); - val->stat = 0; - } + for each_map_ptr_sorted(profiler, const char *, key, struct profile_t, val ) { + if( isnan(val->stat) ) { + float v = val->avg/1000.0; + ui_slider2(*key, &v, va("%.2f ms", val->avg/1000.0)); + } else { + float v = val->stat; + ui_slider2(*key, &v, va("%.2f", val->stat)); + val->stat = 0; + } } } #endif diff --git a/engine/split/v4k_reflect.c b/engine/split/v4k_reflect.c index d4d9b60..9687c4a 100644 --- a/engine/split/v4k_reflect.c +++ b/engine/split/v4k_reflect.c @@ -10,7 +10,7 @@ static map(unsigned, array(reflect_t)) members; void reflect_init() { if(!reflects) map_init_int(reflects); if(!members) map_init_int(members); - } +} AUTORUN { reflect_init(); } @@ -22,7 +22,7 @@ const char* symbol_naked(const char *s) { if(!strstr(s, " *") ) return s; char *copy = va("%s", s); do strswap(copy," *","*"); while( strstr(copy, " *") ); // char * -> char* - return (const char *)copy; + return (const char*)copy; } void type_inscribe(const char *TY,unsigned TYsz,const char *infos) { @@ -138,11 +138,11 @@ int ui_reflect(const char *filter) { // ENUMS, then FUNCTIONS, then STRUCTS unsigned masks[] = { 'E', 'F', 'S' }; for( int i = 0; i < countof(masks); ++i ) - for each_map_ptr(reflects, unsigned, k, reflect_t, R) { + for each_map_ptr(reflects, unsigned, k, reflect_t, R) { if( strmatchi(R->name, filter)) { ui_reflect_(R, filter, masks[i]); - } -} + } + } if( enabled ) ui_enable(); return 0; @@ -183,9 +183,9 @@ AUTOTEST { //printf("+%s vec3.%s (+%x) // %s\n", R->type, R->name, R->member_offset, R->info); } - // reflect_print("puts"); + //reflect_print("puts"); //reflect_print("TEXTURE_RGBA"); //reflect_print("vec3"); - // reflect_dump("*"); + //reflect_dump("*"); } diff --git a/engine/split/v4k_render.c b/engine/split/v4k_render.c index 79949ef..fa9f6df 100644 --- a/engine/split/v4k_render.c +++ b/engine/split/v4k_render.c @@ -96,7 +96,7 @@ unsigned shader_geom(const char *gs, const char *vs, const char *fs, const char PRINTF(/*"!"*/"Compiling shader\n"); char *glsl_defines = ""; - if (defines) { + if( defines ) { for each_substring(defines, ",", def) { glsl_defines = va("%s#define %s\n", glsl_defines, def); } @@ -400,7 +400,7 @@ int ui_shaders() { if( !map_count(shader_reflect) ) return ui_label(ICON_MD_WARNING " No shaders with annotations loaded."), 0; int changed = 0; - for each_map_ptr(shader_reflect, unsigned, k, array(char*), v) { + for each_map_ptr(shader_reflect, unsigned, k, array(char*), v) { int open = 0, clicked_or_toggled = 0; char *id = va("##SHD%d", *k); char *title = va("Shader %d", *k); @@ -567,6 +567,27 @@ unsigned bgraf(float b, float g, float r, float a) { return rgba(r * 255, g * 255, b * 255, a * 255); } +unsigned atorgba(const char *s) { + if( s[0] != '#' ) return 0; + unsigned r = 0, g = 0, b = 0, a = 255; + int slen = strspn(s+1, "0123456789abcdefABCDEF"); + if( slen > 8 ) slen = 8; + /**/ if( slen == 6 ) sscanf(s+1, "%2x%2x%2x", &r,&g,&b); + else if( slen == 8 ) sscanf(s+1, "%2x%2x%2x%2x", &r,&g,&b,&a); + else if( slen == 3 ) sscanf(s+1, "%1x%1x%1x", &r,&g,&b ), r=r<<4|r,g=g<<4|g,b=b<<4|b; + else if( slen == 4 ) sscanf(s+1, "%1x%1x%1x%1x", &r,&g,&b,&a), r=r<<4|r,g=g<<4|g,b=b<<4|b,a=a<<4|a; + return rgba(r,g,b,a); +} +char *rgbatoa(unsigned rgba) { + unsigned a = rgba >> 24; + unsigned b =(rgba >> 16) & 255; + unsigned g =(rgba >> 8) & 255; + unsigned r = rgba & 255; + char *s = va("# "); + sprintf(s+1, "%02x%02x%02x%02x", r,g,b,a); + return s; +} + // ----------------------------------------------------------------------------- // images @@ -1453,16 +1474,19 @@ void sprite( texture_t texture, float position[3], float rotation, uint32_t colo sprite_sheet( texture, spritesheet, position, rotation, offset, scale, 0, color, false ); } -// rect(x,y,w,h) is [0..1] normalized, z-index, pos(x,y,scale), rotation (degrees), color (rgba) -void sprite_rect( texture_t t, vec4 rect, float zindex, vec3 pos, float tilt_deg, unsigned tint_rgba) { - // @todo: no need to queue if alpha or scale are zero +// rect(x,y,w,h) is [0..1] normalized, z-index, pos(x,y,scalex,scaley), rotation (degrees), color (rgba) +void sprite_rect( texture_t t, vec4 rect, float zindex, vec4 pos, float tilt_deg, unsigned tint_rgba) { + // do not queue if either alpha or scale is zero + if( 0 == (pos.z * pos.w * ((tint_rgba>>24) & 255)) ) return; + sprite_t s = {0}; - s.x = rect.x, s.y = rect.y, s.w = rect.z, s.h = rect.w; - s.cellw = s.w * t.w, s.cellh = s.h * t.h; - s.px = pos.x, s.py = pos.y, s.pz = zindex; - s.sx = s.sy = pos.z; + s.sx = pos.z, s.sy = pos.w; + + s.x = rect.x, s.y = rect.y, s.w = rect.z, s.h = rect.w; + s.cellw = s.w * s.sx * t.w, s.cellh = s.h * s.sy * t.h; + s.rgba = tint_rgba; s.ox = 0/*ox*/ * s.sx; s.oy = 0/*oy*/ * s.sy; @@ -1808,10 +1832,10 @@ tileset_t tileset(texture_t tex, unsigned tile_w, unsigned tile_h, unsigned cols return t; } -int tileset_ui( tileset_t t ) { +int ui_tileset( tileset_t t ) { ui_subimage(va("Selection #%d (%d,%d)", t.selected, t.selected % t.cols, t.selected / t.cols), t.tex.id, t.tex.w, t.tex.h, (t.selected % t.cols) * t.tile_w, (t.selected / t.cols) * t.tile_h, t.tile_w, t.tile_h); int choice; - if( (choice = ui_image(0, t.tex.id, t.tex.w,t.tex.h)) ) { + if( (choice = ui_image(0, t.tex.id, t.tex.w,t.tex.h)) ) { int px = ((choice / 100) / 100.f) * t.tex.w / t.tile_w; int py = ((choice % 100) / 100.f) * t.tex.h / t.tile_h; t.selected = px + py * t.cols; @@ -1922,7 +1946,7 @@ void tiled_render(tiled_t tmx, vec3 pos) { } } -void tiled_ui(tiled_t *t) { +void ui_tiled(tiled_t *t) { ui_label2("Loaded map", t->map_name ? t->map_name : "(none)"); ui_label2("Map dimensions", va("%dx%d", t->w, t->h)); ui_label2("Tile dimensions", va("%dx%d", t->tilew, t->tileh)); @@ -1939,7 +1963,7 @@ void tiled_ui(tiled_t *t) { if( ui_collapse(va("Sets: %d", array_count(t->layers)), va("%p",t))) { for( int i = 0; i < array_count(t->layers); ++i ) { if( ui_collapse(va("%d", i+1), va("%p%d",t,i)) ) { - t->sets[i].selected = tileset_ui( t->sets[i] ); + t->sets[i].selected = ui_tileset( t->sets[i] ); ui_collapse_end(); } } @@ -2366,7 +2390,7 @@ void spine_render(spine_t *p, vec3 offset, unsigned flags) { offsy = dir.y * r->sy; } - sprite_rect(p->texture, rect, zindex, add3(vec3(target.x,target.y,1),vec3(offsx,offsy,0)), tilt, tint); + sprite_rect(p->texture, rect, zindex, add4(vec4(target.x,target.y,1,1),vec4(offsx,offsy,0,0)), tilt, tint); } } @@ -2414,7 +2438,7 @@ void spine_animate(spine_t *p, float delta) { spine_animate_(p, &p->time, &p->maxtime, delta); } -void spine_ui(spine_t *p) { +void ui_spine(spine_t *p) { if( ui_collapse(va("Anims: %d", array_count(p->anims)), va("%p-a", p))) { for each_array_ptr(p->anims, spine_anim_t, q) { if(ui_slider2("", &p->time, va("%.2f/%.0f %.2f%%", p->time, p->maxtime, p->time * 100.f))) { @@ -2491,7 +2515,7 @@ void spine_ui(spine_t *p) { sprite_rect(p->texture, // rect: vec4(r->x*1.0/p->texture.w,r->y*1.0/p->texture.h,(r->x+r->w)*1.0/p->texture.w,(r->y+r->h)*1.0/p->texture.h), ptr4(&r->x), // atlas - 0, vec3(0,0,0), r->deg + tilt, tint); + 0, vec4(0,0,1,1), r->deg + tilt, tint); sprite_flush(); camera_get_active()->position = vec3(+window_width()/3,window_height()/2.25,2); } @@ -2736,7 +2760,7 @@ void skybox_mie_calc_sh(skybox_t *sky, float sky_intensity) { for(int i = 0; i < 6; ++i) { glGenFramebuffers(1, &sky->framebuffers[i]); glBindFramebuffer(GL_FRAMEBUFFER, sky->framebuffers[i]); - + glGenTextures(1, &sky->textures[i]); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, sky->textures[i]); @@ -2807,7 +2831,7 @@ void skybox_mie_calc_sh(skybox_t *sky, float sky_intensity) { void skybox_sh_reset(skybox_t *sky) { for (int s = 0; s < 9; s++) { sky->cubemap.sh[s] = vec3(0,0,0); - } + } } void skybox_sh_add_light(skybox_t *sky, vec3 light, vec3 dir, float strength) { @@ -3387,7 +3411,7 @@ bool postfx_end(postfx *fx) { return false; } - handle fb = *array_back(last_fb); + handle fb = *array_back(last_fb); array_pop(last_fb); fbo_bind(fb); @@ -3503,13 +3527,13 @@ int ui_fxs() { if(!fx.num_loaded) return ui_label(ICON_MD_WARNING " No Post FXs with annotations loaded."), 0; int changed = 0; - for( int i = 0; i < 64; ++i ) { - char *name = fx_name(i); if( !name ) break; - bool b = fx_enabled(i); - if( ui_bool(name, &b) ) fx_enable(i, fx_enabled(i) ^ 1); - ui_fx(i); + for( int i = 0; i < 64; ++i ) { + char *name = fx_name(i); if( !name ) break; + bool b = fx_enabled(i); + if( ui_bool(name, &b) ) fx_enable(i, fx_enabled(i) ^ 1); + ui_fx(i); ui_separator(); - } + } return changed; } @@ -4272,7 +4296,7 @@ bool model_load_textures(iqm_t *q, const struct iqmheader *hdr, model_t *model) if( material_embedded_texture ) { *material_embedded_texture = '\0'; material_embedded_texture += 5; - array(char) embedded_texture = base64__decode(material_embedded_texture, strlen(material_embedded_texture)); + array(char) embedded_texture = base64_decode(material_embedded_texture, strlen(material_embedded_texture)); //printf("%s %d\n", material_embedded_texture, array_count(embedded_texture)); //hexdump(embedded_texture, array_count(embedded_texture)); *out = texture_compressed_from_mem( embedded_texture, array_count(embedded_texture), 0 ).id; @@ -4398,7 +4422,7 @@ model_t model_from_mem(const void *mem, int len, int flags) { "att_position,att_texcoord,att_normal,att_tangent,att_instanced_matrix,,,,att_indexes,att_weights,att_vertexindex,att_color,att_bitangent","fragColor", va("SHADING_PHONG,%s", (flags&MODEL_RIMLIGHT)?"RIM":"")); // } - ASSERT(shaderprog > 0); + // ASSERT(shaderprog > 0); iqm_t *q = CALLOC(1, sizeof(iqm_t)); m.program = shaderprog; @@ -4771,13 +4795,13 @@ anims_t animations(const char *pathfile, int flags) { if( anim_file ) { // deserialize anim a.speed = 1.0; - for each_substring(anim_file, "\r\n", anim) { - int from, to; - char anim_name[128] = {0}; - if( sscanf(anim, "%*s %d-%d %127[^\r\n]", &from, &to, anim_name) != 3) continue; + for each_substring(anim_file, "\r\n", anim) { + int from, to; + char anim_name[128] = {0}; + if( sscanf(anim, "%*s %d-%d %127[^\r\n]", &from, &to, anim_name) != 3) continue; array_push(a.anims, !!strstri(anim_name, "loop") || !strcmpi(anim_name, "idle") ? loop(from, to, 0, 0) : clip(from, to, 0, 0)); // [from,to,flags] array_back(a.anims)->name = strswap(strswap(strswap(STRDUP(anim_name), "Loop", ""), "loop", ""), "()", ""); // @leak - } + } } else { // placeholder array_push(a.anims, clip(0,1,0,0)); diff --git a/engine/split/v4k_render.h b/engine/split/v4k_render.h index ce29bd3..ed42aa3 100644 --- a/engine/split/v4k_render.h +++ b/engine/split/v4k_render.h @@ -37,6 +37,9 @@ API unsigned alpha( unsigned rgba ); #define BLUE RGBX(0xB55A06,255) +API unsigned atorgba(const char *s); +API char * rgbatoa(unsigned rgba); + // ----------------------------------------------------------------------------- // images @@ -121,6 +124,7 @@ typedef struct texture_t { char* filename; bool transparent; unsigned fbo; // for texture recording + union { unsigned userdata, delay; }; } texture_t; API texture_t texture_compressed(const char *filename, unsigned flags); @@ -185,8 +189,8 @@ API void fullscreen_quad_ycbcr_flipped( texture_t texture_YCbCr[3], float gamma // texture id, position(x,y,depth sort), tint color, rotation angle API void sprite( texture_t texture, float position[3], float rotation /*0*/, uint32_t color /*~0u*/); -// texture id, rect(x,y,w,h) is [0..1] normalized, z-index, pos(xy,scale), rotation (degrees), color (rgba) -API void sprite_rect( texture_t t, vec4 rect, float zindex, vec3 pos, float tilt_deg, unsigned tint_rgba); +// texture id, rect(x,y,w,h) is [0..1] normalized, z-index, pos(xy,scale.xy), rotation (degrees), color (rgba) +API void sprite_rect( texture_t t, vec4 rect, float zindex, vec4 pos, float tilt_deg, unsigned tint_rgba); // texture id, sheet(frameNumber,X,Y) (frame in a X*Y spritesheet), position(x,y,depth sort), rotation angle, offset(x,y), scale(x,y), is_additive, tint color API void sprite_sheet( texture_t texture, float sheet[3], float position[3], float rotation, float offset[2], float scale[2], int is_additive, uint32_t rgba, int resolution_independant); @@ -204,7 +208,8 @@ typedef struct tileset_t { } tileset_t; API tileset_t tileset(texture_t tex, unsigned tile_w, unsigned tile_h, unsigned cols, unsigned rows); -API int tileset_ui( tileset_t t ); + +API int ui_tileset( tileset_t t ); typedef struct tilemap_t { int blank_chr; // transparent tile @@ -239,7 +244,8 @@ typedef struct tiled_t { API tiled_t tiled(const char *file_tmx); API void tiled_render(tiled_t tmx, vec3 pos); -API void tiled_ui(tiled_t *t); + +API void ui_tiled(tiled_t *t); // ----------------------------------------------------------------------------- // spines @@ -250,7 +256,8 @@ API spine_t*spine(const char *file_json, const char *file_atlas, unsigned flags) API void spine_skin(spine_t *p, unsigned skin); API void spine_render(spine_t *p, vec3 offset, unsigned flags); API void spine_animate(spine_t *p, float delta); -API void spine_ui(spine_t *p); + +API void ui_spine(spine_t *p); // ----------------------------------------------------------------------------- // cubemaps diff --git a/engine/split/v4k_renderdd.c b/engine/split/v4k_renderdd.c index a092c8a..10474c1 100644 --- a/engine/split/v4k_renderdd.c +++ b/engine/split/v4k_renderdd.c @@ -109,7 +109,7 @@ void ddraw_flush_projview(mat44 proj, mat44 view) { // queue for(int i = 0; i < array_count(dd_text2d); ++i) { ddraw_color(dd_text2d[i].col); - ddraw_text(dd_text2d[i].pos, dd_text2d[i].sca, dd_text2d[i].str); + ddraw_text(dd_text2d[i].pos, dd_text2d[i].sca, dd_text2d[i].str); } // flush @@ -140,7 +140,7 @@ void ddraw_flush_projview(mat44 proj, mat44 view) { // clear array_resize(dd_text2d, 0); } - + glDisable(GL_LINE_SMOOTH); glDisable(GL_PROGRAM_POINT_SIZE); @@ -357,7 +357,7 @@ void ddraw_cube(vec3 center, float radius) { // draw_prism(center, 1, -1, vec3(0 #if 0 // @fixme: broken void ddraw_cube44(vec3 radius, mat44 M) { - float m33[9]; extract33(m33, M); // = { M[0,1,2], M[4,5,6], M[8,9,10] } + float m33[9]; extract33(m33, M); // = { M[0,1,2], M[4,5,6], M[8,9,10] } ddraw_cube33( vec3(M[12], M[13], M[14]), radius, m33 ); } #endif @@ -514,7 +514,7 @@ void ddraw_pyramid(vec3 center, float height, int segments) { ddraw_prism(center, 1, height, vec3(0,1,0), segments); } void ddraw_cylinder(vec3 center, float height, int segments) { - ddraw_prism(center, 1, -height, vec3(0,1,0), segments); + ddraw_prism(center, 1, -height, vec3(0,1,0), segments); } void ddraw_diamond(vec3 from, vec3 to, float size) { poly p = diamond(from, to, size); diff --git a/engine/split/v4k_scene.c b/engine/split/v4k_scene.c index 86dd766..b1dfba6 100644 --- a/engine/split/v4k_scene.c +++ b/engine/split/v4k_scene.c @@ -9,9 +9,9 @@ camera_t camera() { static camera_t cam = {0}; do_once { cam.speed = 0.50f; - cam.position = vec3(10,10,10); + cam.position = vec3(10,10,10); cam.updir = vec3(0,1,0); - cam.fov = 45; + cam.fov = 45; cam.damping = false; cam.move_friction = 0.09f; @@ -21,18 +21,18 @@ camera_t camera() { cam.last_look = vec2(0,0); cam.last_move = vec3(0,0,0); - // update proj & view - camera_lookat(&cam,vec3(-5,0,-5)); + // update proj & view + camera_lookat(&cam,vec3(-5,0,-5)); // @todo: remove this hack that is used to consolidate dampings if( 1 ) { vec3 zero = {0}; - for( int i = 0; i < 1000; ++i ) { + for( int i = 0; i < 1000; ++i ) { camera_moveby(&cam, zero); - camera_fps(&cam,0,0); + camera_fps(&cam,0,0); + } } } - } last_camera = old; *camera_get_active() = cam; diff --git a/engine/split/v4k_string.c b/engine/split/v4k_string.c index 34a5aa0..f185c28 100644 --- a/engine/split/v4k_string.c +++ b/engine/split/v4k_string.c @@ -261,11 +261,12 @@ const char *strlerp(unsigned numpairs, const char **pairs, const char *str) { // } array(char*) strsplit(const char *str, const char *separators) { + enum { SLOTS = 32 }; static __thread int slot = 0; - static __thread char *buf[16] = {0}; - static __thread array(char*) list[16] = {0}; + static __thread char *buf[SLOTS] = {0}; + static __thread array(char*) list[SLOTS] = {0}; - slot = (slot+1) % 16; + slot = (slot+1) % SLOTS; array_resize(list[slot], 0); *(buf[slot] = REALLOC(buf[slot], strlen(str)*2+1)) = '\0'; // *2 to backup pathological case where input str is only separators && include == 1 @@ -297,10 +298,11 @@ array(char*) strsplit(const char *str, const char *separators) { return list[slot]; } char* strjoin(array(char*) list, const char *separator) { + enum { SLOTS = 16 }; static __thread int slot = 0; - static __thread char* mems[16] = {0}; + static __thread char* mems[SLOTS] = {0}; - slot = (slot+1) % 16; + slot = (slot+1) % SLOTS; int num_list = array_count(list); int len = 0, inc = 0, seplen = strlen(separator); diff --git a/engine/split/v4k_system.c b/engine/split/v4k_system.c index 891681d..b378e89 100644 --- a/engine/split/v4k_system.c +++ b/engine/split/v4k_system.c @@ -90,28 +90,72 @@ const char *app_cache() { const char * app_exec( const char *cmd ) { static __thread char output[4096+16] = {0}; + char *buf = output + 16; buf[0] = 0; // memset(buf, 0, 4096); if( !cmd[0] ) return "0 "; cmd = file_normalize(cmd); int rc = -1; - char *buf = output + 16; buf[0] = 0; // memset(buf, 0, 4096); + + // pick the fastest code path per platform +#if is(osx) for( FILE *fp = popen( cmd, "r" ); fp; rc = pclose(fp), fp = 0) { - while( fgets(buf, 4096 - 1, fp) ) { - } + // while( fgets(buf, 4096 - 1, fp) ) {} } - if( rc != 0 ) { - char *r = strrchr(buf, '\r'); if(r) *r = 0; - char *n = strrchr(buf, '\n'); if(n) *n = 0; + // if( rc != 0 ) { + // char *r = strrchr(buf, '\r'); if(r) *r = 0; + // char *n = strrchr(buf, '\n'); if(n) *n = 0; + // } +#elif is(win32) + STARTUPINFOA si = {0}; si.cb = sizeof(si); + PROCESS_INFORMATION pi = {0}; + + snprintf(output+16, 4096, "cmd /c \"%s\"", cmd); + + int prio = //strstr(cmd, "ffmpeg") || strstr(cmd, "furnace") || strstr(cmd, "ass2iqe") ? + REALTIME_PRIORITY_CLASS; //: 0; + +//prio |= DETACHED_PROCESS; +//si.dwFlags = STARTF_USESTDHANDLES; + + if( CreateProcessA( + NULL, output+16, // cmdline + NULL, + NULL, + FALSE, // FALSE: dont inherit handles + prio /*CREATE_DEFAULT_ERROR_MODE|CREATE_NO_WINDOW*/, // 0|HIGH_PRIORITY_CLASS + NULL, // "", // NULL would inherit env + NULL, // current dir + &si, &pi) ) + { + // Wait for process + DWORD dwExitCode2 = WaitForSingleObject(pi.hProcess, INFINITE); + DWORD dwExitCode; GetExitCodeProcess(pi.hProcess, &dwExitCode); + rc = dwExitCode; } + else + { + // CreateProcess() failed + rc = GetLastError(); + } +#else + rc = system(cmd); +#endif + return snprintf(output, 16, "%-15d", rc), buf[-1] = ' ', output; } int app_spawn( const char *cmd ) { - if( !cmd[0] ) return -1; + if( !cmd[0] ) return false; cmd = file_normalize(cmd); - return system(cmd); +#if _WIN32 + bool ok = WinExec(va("cmd /c \"%s\"", cmd), SW_HIDE) > 31; +#else + bool ok = system(va("%s &", cmd)) == 0; +#endif + + return ok; } #if is(osx) @@ -215,7 +259,7 @@ char *callstack( int traces ) { // should concat addresses into a multi-address line char *binary = symbols[i]; - char *address = strchr( symbols[i], '(' ) + 1; + char *address = strchr( symbols[i], '(' ) + 1; *strrchr( address, ')') = '\0'; *(address - 1) = '\0'; for( FILE *fp = popen(va("addr2line -e %s %s", binary, address), "r" ); fp ; pclose(fp), fp = 0 ) { //addr2line -e binary -f -C address @@ -610,8 +654,8 @@ void tty_attach() { // in order to have a Windows gui application with console: // - use WinMain() then AllocConsole(), but that may require supporintg different entry points for different platforms. // - /link /SUBSYSTEM:CONSOLE and then call FreeConsole() if no console is needed, but feels naive to flash the terminal for a second. - // - /link /SUBSYSTEM:WINDOWS /entry:mainCRTStartup, then AllocConsole() as follows. Quoting @pmttavara: - // "following calls are the closest i'm aware you can get to /SUBSYSTEM:CONSOLE in a gui program + // - /link /SUBSYSTEM:WINDOWS /entry:mainCRTStartup, then AllocConsole() as follows. Quoting @pmttavara: + // "following calls are the closest i'm aware you can get to /SUBSYSTEM:CONSOLE in a gui program // while cleanly handling existing consoles (cmd.exe), pipes (ninja) and no console (VS/RemedyBG; double-clicking the game)" do_once { if( !AttachConsole(ATTACH_PARENT_PROCESS) && GetLastError() != ERROR_ACCESS_DENIED ) { bool ok = !!AllocConsole(); ASSERT( ok ); } @@ -694,7 +738,7 @@ void alert(const char *message) { // @todo: move to app_, besides die() #endif window_visible(true); - } +} void breakpoint() { debugbreak(); @@ -807,9 +851,9 @@ void app_crash() { *p = 42; } void app_beep() { - ifdef(win32, system("rundll32 user32.dll,MessageBeep"); return; ); - ifdef(linux, system("paplay /usr/share/sounds/freedesktop/stereo/message.oga"); return; ); - ifdef(osx, system("tput bel"); return; ); + ifdef(win32, app_spawn("rundll32 user32.dll,MessageBeep"); return; ); + ifdef(linux, app_spawn("paplay /usr/share/sounds/freedesktop/stereo/message.oga"); return; ); + ifdef(osx, app_spawn("tput bel"); return; ); //fallback: fputc('\x7', stdout); @@ -864,7 +908,7 @@ bool app_open_folder(const char *file) { #else snprintf(buf, sizeof(buf), "xdg-open \"%s\"", file); #endif - return system(buf) == 0; + return app_spawn(buf); } static @@ -877,7 +921,7 @@ bool app_open_file(const char *file) { #else snprintf(buf, sizeof(buf), "xdg-open \"%s\"", file); #endif - return system(buf) == 0; + return app_spawn(buf); } static diff --git a/engine/split/v4k_system.h b/engine/split/v4k_system.h index 021ee92..697ac72 100644 --- a/engine/split/v4k_system.h +++ b/engine/split/v4k_system.h @@ -59,13 +59,13 @@ API void trap_on_quit(int signal); // helper util API void trap_on_abort(int signal); // helper util API void trap_on_debug(int signal); // helper util -#define PANIC(...) PANIC(va(__VA_ARGS__), strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__, __LINE__) // die() ? +#define PANIC(...) PANIC(va(""__VA_ARGS__), __FILE__, __LINE__) // die() ? API int (PANIC)(const char *error, const char *file, int line); -#define PRINTF(...) PRINTF(va(__VA_ARGS__), 1[#__VA_ARGS__] == '!' ? callstack(+48) : "", strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__, __LINE__, __FUNCTION__) +#define PRINTF(...) PRINTF(va(""__VA_ARGS__), 1[""#__VA_ARGS__] == '!' ? callstack(+48) : "", __FILE__, __LINE__, __FUNCTION__) API int (PRINTF)(const char *text, const char *stack, const char *file, int line, const char *function); -#define test(expr) test(strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__,__LINE__,#expr,!!(expr)) +#define test(expr) test(__FILE__,__LINE__,#expr,!!(expr)) API int (test)(const char *file, int line, const char *expr, bool result); #if ENABLE_AUTOTESTS diff --git a/engine/split/v4k_time.c b/engine/split/v4k_time.c index a2d0d26..5c94480 100644 --- a/engine/split/v4k_time.c +++ b/engine/split/v4k_time.c @@ -103,8 +103,8 @@ static uint64_t nanotimer(uint64_t *out_freq) { } uint64_t time_ns() { - static uint64_t epoch = 0; - static uint64_t freq = 0; + static __thread uint64_t epoch = 0; + static __thread uint64_t freq = 0; if( !freq ) { epoch = nanotimer(&freq); } diff --git a/engine/split/v4k_time.h b/engine/split/v4k_time.h index 3aadecd..fd0057c 100644 --- a/engine/split/v4k_time.h +++ b/engine/split/v4k_time.h @@ -152,5 +152,5 @@ typedef struct curve_t { API curve_t curve(); API void curve_add(curve_t *c, vec3 p); API void curve_end(curve_t *c, int num_points); -API vec3 curve_eval(curve_t *c, float dt, unsigned *color); +API vec3 curve_eval(curve_t *c, float dt, unsigned *color); API void curve_destroy(curve_t *c); diff --git a/engine/split/v4k_ui.c b/engine/split/v4k_ui.c index 6a0181d..4e75c69 100644 --- a/engine/split/v4k_ui.c +++ b/engine/split/v4k_ui.c @@ -107,10 +107,11 @@ static int ui_using_v2_menubar = 0; nk_menu_close(ui_ctx); \ nk_menu_end(ui_ctx); \ }} -#define UI_MENU_ALIGN_RIGHT(px) { \ +#define UI_MENU_ALIGN_RIGHT(px, ...) { \ int hspace = total_space.w - span - (px) - 1.5 * ITEM_WIDTH; \ nk_layout_row_push(ui_ctx, hspace); span += hspace; \ if (nk_menu_begin_label(ui_ctx, (title), align = NK_TEXT_RIGHT, nk_vec2(1,1))) { \ + __VA_ARGS__; \ nk_menu_close(ui_ctx); \ nk_menu_end(ui_ctx); \ }} @@ -124,9 +125,9 @@ static int ui_using_v2_menubar = 0; #define UI_FONT_ENUM(carlito,b612) b612 // carlito -#define UI_FONT_REGULAR UI_FONT_ENUM("Carlito", "B612") "-Regular.ttf" -#define UI_FONT_HEADING UI_FONT_ENUM("Carlito", "B612") "-BoldItalic.ttf" -#define UI_FONT_TERMINAL UI_FONT_ENUM("Inconsolata", "B612Mono") "-Regular.ttf" +#define UI_FONT_REGULAR UI_FONT_ENUM("Carlito", "B612") "-Regular.ttf" +#define UI_FONT_HEADING UI_FONT_ENUM("Carlito", "B612") "-BoldItalic.ttf" +#define UI_FONT_TERMINAL UI_FONT_ENUM("Inconsolata", "B612Mono") "-Regular.ttf" #if UI_LESSER_SPACING enum { UI_SEPARATOR_HEIGHT = 5, UI_MENUBAR_ICON_HEIGHT = 20, UI_ROW_HEIGHT = 22, UI_MENUROW_HEIGHT = 32 }; @@ -221,7 +222,7 @@ static void nk_config_custom_fonts() { // Monospaced font. Used in terminals or consoles. for( char *data = vfs_load(UI_FONT_TERMINAL, &datalen); data; data = 0 ) { - const float font_size = UI_FONT_REGULAR_SIZE; + const float font_size = UI_FONT_REGULAR_SIZE; static const nk_rune icon_range[] = {32, 127, 0}; struct nk_font_config cfg = nk_font_config(font_size); @@ -518,10 +519,10 @@ vec2 ui_toolbar_(array(ui_item_t) ui_items, vec2 ui_results) { if( nk_menu_item_text(ui_ctx, item, lens[j], NK_TEXT_LEFT) ) { ui_results = vec2(i+1, j+1-1); } - } + } nk_menu_end(ui_ctx); - } + } } } @@ -905,7 +906,7 @@ int ui_set_enable_(int enabled) { static struct nk_input input; if (!enabled) { ui_alpha_push(0.5); - ui_ctx->style = off; // .button = off.button; + ui_ctx->style = off; // .button = off.button; input = ui_ctx->input; memset(&ui_ctx->input, 0, sizeof(ui_ctx->input)); } else { @@ -1216,7 +1217,7 @@ int ui_layout_all_load_disk(const char *mask) { const char *title = ui_layout_load_disk(k, mask, i, &out); if( title ) { struct nk_window *win = nk_window_find(ui_ctx, title); - if( win ) { + if( win ) { win->bounds.x = out.x; win->bounds.y = out.y; win->bounds.w = out.w; @@ -1340,7 +1341,7 @@ if( win ) { if( group1_any || !group2_interacting || anim_in_progress ) { struct nk_rect target = ui_layout_load_mem(idx, desktop, is_panel); - float alpha = len2sq(sub2(s->desktop, desktop)) ? 0 : UI_ANIM_ALPHA; // smooth unless we're restoring a desktop change + float alpha = len2sq(sub2(s->desktop, desktop)) ? 0 : UI_ANIM_ALPHA; // smooth unless we're restoring a desktop change #if 1 if( is_window && win->flags & NK_WINDOW_FULLSCREEN ) { target.x = 1; @@ -1356,7 +1357,7 @@ if( win ) { target.y = ((desktop.h - workarea_h) - target.h) / 2; } #endif - win->bounds = nk_rect( + win->bounds = nk_rect( win->bounds.x * alpha + target.x * (1 - alpha), win->bounds.y * alpha + target.y * (1 - alpha), win->bounds.w * alpha + target.w * (1 - alpha), @@ -1411,7 +1412,7 @@ if( is_notify ) { if( nk_begin(ui_ctx, title, start_coords, window_flags) ) { // set width for all inactive panels -struct nk_rect bounds = nk_window_get_bounds(ui_ctx); +struct nk_rect bounds = nk_window_get_bounds(ui_ctx); if( mouse_pressed && win && win->is_window_resizing ) { edge = vec2(bounds.w, bounds.h); @@ -1433,7 +1434,7 @@ if( mouse_pressed && win && win->is_window_resizing ) { } else { if(is_panel) { - ui_panel_end(); + ui_panel_end(); } else ui_window_end(); return 0; @@ -1508,7 +1509,7 @@ int ui_panel(const char *title, int flags) { if(!ui_window_has_menubar) nk_layout_row_push(ui_ctx, 70); ui_window_has_menubar = 1; - return nk_menu_begin_text_styled(ui_ctx, title, strlen(title), NK_TEXT_ALIGN_CENTERED|NK_TEXT_ALIGN_MIDDLE, nk_vec2(220, 200), &transparent_style); + return nk_menu_begin_text_styled(ui_ctx, title, strlen(title), NK_TEXT_ALIGN_CENTERED|NK_TEXT_ALIGN_MIDDLE, nk_vec2(220, 200), &transparent_style); } return ui_begin_panel_or_window_(title, flags, false); @@ -1655,7 +1656,7 @@ if( !has_icon ) { } else { char *icon_glyph = va("%.*s", icon_len, icon); -// @todo: implement nk_push_layout() +// @todo: implement nk_push_layout() // nk_rect bounds = {..}; nk_panel_alloc_space(bounds, ctx); struct nk_window *win = ui_ctx->current; struct nk_panel *layout = win->layout, copy = *layout; @@ -1686,7 +1687,7 @@ if( font ) nk_style_pop_font(ui_ctx); // old way // ui_labeicon_l_icked_L.x = is_hovering ? nk_input_has_mouse_click_down_in_rect(input, NK_BUTTON_LEFT, layout->bounds, nk_true) : 0; // new way - // this is an ugly hack to detect which icon (within a label) we're clicking on. + // this is an ugly hack to detect which icon (within a label) we're clicking on. // @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? ui_label_icon_clicked_L.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (alignment == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; @@ -1702,20 +1703,20 @@ int ui_label(const char *label) { } static int nk_label_(struct nk_context *ui_ctx, const char *text_, int align2 ) { -const struct nk_input *input = &ui_ctx->input; -struct nk_rect bounds = nk_widget_bounds(ui_ctx); -int is_hovering = nk_input_is_mouse_hovering_rect(input, bounds) && !ui_has_active_popups; -if( is_hovering ) { - struct nk_rect winbounds = nk_window_get_bounds(ui_ctx); - is_hovering &= nk_input_is_mouse_hovering_rect(input, winbounds); - is_hovering &= nk_window_has_focus(ui_ctx); -} + const struct nk_input *input = &ui_ctx->input; + struct nk_rect bounds = nk_widget_bounds(ui_ctx); + int is_hovering = nk_input_is_mouse_hovering_rect(input, bounds) && !ui_has_active_popups; + if( is_hovering ) { + struct nk_rect winbounds = nk_window_get_bounds(ui_ctx); + is_hovering &= nk_input_is_mouse_hovering_rect(input, winbounds); + is_hovering &= nk_window_has_focus(ui_ctx); + } - nk_label(ui_ctx, text_, align2); + nk_label(ui_ctx, text_, align2); -// this is an ugly hack to detect which icon (within a label) we're clicking on. -// @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? -ui_label_icon_clicked_R.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (align2 == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; + // this is an ugly hack to detect which icon (within a label) we're clicking on. + // @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? + ui_label_icon_clicked_R.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (align2 == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; return ui_label_icon_clicked_R.x; } @@ -1892,24 +1893,60 @@ int ui_toggle(const char *label, bool *value) { return rc ? (*value ^= 1), rc : rc; } -int ui_color4f(const char *label, float *color4) { - if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - - float c[4] = { color4[0]*255, color4[1]*255, color4[2]*255, color4[3]*255 }; - int ret = ui_color4(label, c); - for( int i = 0; i < 4; ++i ) color4[i] = c[i] / 255.0f; - return ret; -} - static enum color_mode {COL_RGB, COL_HSV} ui_color_mode = COL_RGB; -int ui_color4(const char *label, float *color4) { +int ui_color4f(const char *label, float *color) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - struct nk_colorf after = { color4[0]*ui_alpha/255, color4[1]*ui_alpha/255, color4[2]*ui_alpha/255, color4[3]/255 }, before = after; + struct nk_colorf after = { color[0]*ui_alpha, color[1]*ui_alpha, color[2]*ui_alpha, color[3] }, before = after; + struct nk_colorf clamped = { clampf(color[0],0,1), clampf(color[1],0,1), clampf(color[2],0,1), clampf(color[3],0,1) }; + if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(clamped), nk_vec2(200,400))) { + nk_layout_row_dynamic(ui_ctx, 120, 1); + after = nk_color_picker(ui_ctx, after, NK_RGB); + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_color_mode = nk_option_label(ui_ctx, "RGB", ui_color_mode == COL_RGB) ? COL_RGB : ui_color_mode; + ui_color_mode = nk_option_label(ui_ctx, "HSV", ui_color_mode == COL_HSV) ? COL_HSV : ui_color_mode; + + nk_layout_row_dynamic(ui_ctx, 0, 1); + if (ui_color_mode == COL_RGB) { + after.r = nk_propertyf(ui_ctx, "#R:", -FLT_MAX, after.r, FLT_MAX, 0.01f,0.005f); + after.g = nk_propertyf(ui_ctx, "#G:", -FLT_MAX, after.g, FLT_MAX, 0.01f,0.005f); + after.b = nk_propertyf(ui_ctx, "#B:", -FLT_MAX, after.b, FLT_MAX, 0.01f,0.005f); + } else { + float hsva[4]; + nk_colorf_hsva_fv(hsva, after); + hsva[0] = nk_propertyf(ui_ctx, "#H:", -FLT_MAX, hsva[0], FLT_MAX, 0.01f,0.005f); + hsva[1] = nk_propertyf(ui_ctx, "#S:", -FLT_MAX, hsva[1], FLT_MAX, 0.01f,0.005f); + hsva[2] = nk_propertyf(ui_ctx, "#V:", -FLT_MAX, hsva[2], FLT_MAX, 0.01f,0.005f); + after = nk_hsva_colorfv(hsva); + } + nk_label(ui_ctx, va("#%02X%02X%02X", (unsigned)clampf(after.r*255,0,255), (unsigned)clampf(after.g*255,0,255), (unsigned)clampf(after.b*255,0,255)), NK_TEXT_CENTERED); + + color[0] = after.r; + color[1] = after.g; + color[2] = after.b; + color[3] = after.a; + + nk_combo_end(ui_ctx); + } + return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); +} +int ui_color4(const char *label, unsigned *color) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + unsigned a = *color >> 24; + unsigned b =(*color >> 16)&255; + unsigned g =(*color >> 8)&255; + unsigned r = *color & 255; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + struct nk_colorf after = { r*ui_alpha/255, g*ui_alpha/255, b*ui_alpha/255, a*ui_alpha/255 }, before = after; if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(after), nk_vec2(200,400))) { nk_layout_row_dynamic(ui_ctx, 120, 1); after = nk_color_picker(ui_ctx, after, NK_RGBA); @@ -1920,44 +1957,83 @@ int ui_color4(const char *label, float *color4) { nk_layout_row_dynamic(ui_ctx, 0, 1); if (ui_color_mode == COL_RGB) { - after.r = nk_propertyf(ui_ctx, "#R:", 0, after.r, 1.0f, 0.01f,0.005f); - after.g = nk_propertyf(ui_ctx, "#G:", 0, after.g, 1.0f, 0.01f,0.005f); - after.b = nk_propertyf(ui_ctx, "#B:", 0, after.b, 1.0f, 0.01f,0.005f); - after.a = nk_propertyf(ui_ctx, "#A:", 0, after.a, 1.0f, 0.01f,0.005f); + after.r = nk_propertyi(ui_ctx, "#R:", 0, after.r * 255, 255, 1,1) / 255.f; + after.g = nk_propertyi(ui_ctx, "#G:", 0, after.g * 255, 255, 1,1) / 255.f; + after.b = nk_propertyi(ui_ctx, "#B:", 0, after.b * 255, 255, 1,1) / 255.f; + after.a = nk_propertyi(ui_ctx, "#A:", 0, after.a * 255, 255, 1,1) / 255.f; } else { float hsva[4]; nk_colorf_hsva_fv(hsva, after); - hsva[0] = nk_propertyf(ui_ctx, "#H:", 0, hsva[0], 1.0f, 0.01f,0.05f); - hsva[1] = nk_propertyf(ui_ctx, "#S:", 0, hsva[1], 1.0f, 0.01f,0.05f); - hsva[2] = nk_propertyf(ui_ctx, "#V:", 0, hsva[2], 1.0f, 0.01f,0.05f); - hsva[3] = nk_propertyf(ui_ctx, "#A:", 0, hsva[3], 1.0f, 0.01f,0.05f); + hsva[0] = nk_propertyi(ui_ctx, "#H:", 0, hsva[0] * 255, 255, 1,1) / 255.f; + hsva[1] = nk_propertyi(ui_ctx, "#S:", 0, hsva[1] * 255, 255, 1,1) / 255.f; + hsva[2] = nk_propertyi(ui_ctx, "#V:", 0, hsva[2] * 255, 255, 1,1) / 255.f; + hsva[3] = nk_propertyi(ui_ctx, "#A:", 0, hsva[3] * 255, 255, 1,1) / 255.f; after = nk_hsva_colorfv(hsva); } + r = after.r * 255; + g = after.g * 255; + b = after.b * 255; + a = after.a * 255; + *color = rgba(r,g,b,a); - color4[0] = after.r * 255; - color4[1] = after.g * 255; - color4[2] = after.b * 255; - color4[3] = after.a * 255; + nk_label(ui_ctx, va("#%02X%02X%02X%02X", r, g, b, a), NK_TEXT_CENTERED); nk_combo_end(ui_ctx); } return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); } -int ui_color3f(const char *label, float *color3) { - float c[3] = { color3[0]*255, color3[1]*255, color3[2]*255 }; - int ret = ui_color3(label, c); - for( int i = 0; i < 3; ++i ) color3[i] = c[i] / 255.0f; - return ret; -} - -int ui_color3(const char *label, float *color3) { +int ui_color3f(const char *label, float *color) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - struct nk_colorf after = { color3[0]*ui_alpha/255, color3[1]*ui_alpha/255, color3[2]*ui_alpha/255, 1 }, before = after; + struct nk_colorf after = { color[0]*ui_alpha, color[1]*ui_alpha, color[2]*ui_alpha, ui_alpha }, before = after; + struct nk_colorf clamped = { clampf(color[0],0,1), clampf(color[1],0,1), clampf(color[2],0,1), 1 }; + if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(clamped), nk_vec2(200,400))) { + nk_layout_row_dynamic(ui_ctx, 120, 1); + after = nk_color_picker(ui_ctx, after, NK_RGB); + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_color_mode = nk_option_label(ui_ctx, "RGB", ui_color_mode == COL_RGB) ? COL_RGB : ui_color_mode; + ui_color_mode = nk_option_label(ui_ctx, "HSV", ui_color_mode == COL_HSV) ? COL_HSV : ui_color_mode; + + nk_layout_row_dynamic(ui_ctx, 0, 1); + if (ui_color_mode == COL_RGB) { + after.r = nk_propertyf(ui_ctx, "#R:", -FLT_MAX, after.r, FLT_MAX, 0.01f,0.005f); + after.g = nk_propertyf(ui_ctx, "#G:", -FLT_MAX, after.g, FLT_MAX, 0.01f,0.005f); + after.b = nk_propertyf(ui_ctx, "#B:", -FLT_MAX, after.b, FLT_MAX, 0.01f,0.005f); + } else { + float hsva[4]; + nk_colorf_hsva_fv(hsva, after); + hsva[0] = nk_propertyf(ui_ctx, "#H:", -FLT_MAX, hsva[0], FLT_MAX, 0.01f,0.005f); + hsva[1] = nk_propertyf(ui_ctx, "#S:", -FLT_MAX, hsva[1], FLT_MAX, 0.01f,0.005f); + hsva[2] = nk_propertyf(ui_ctx, "#V:", -FLT_MAX, hsva[2], FLT_MAX, 0.01f,0.005f); + after = nk_hsva_colorfv(hsva); + } + nk_label(ui_ctx, va("#%02X%02X%02X", (unsigned)clampf(after.r*255,0,255), (unsigned)clampf(after.g*255,0,255), (unsigned)clampf(after.b*255,0,255)), NK_TEXT_CENTERED); + + color[0] = after.r; + color[1] = after.g; + color[2] = after.b; + + nk_combo_end(ui_ctx); + } + return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); +} +int ui_color3(const char *label, unsigned *color) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + unsigned a = *color >> 24; + unsigned b =(*color >> 16)&255; + unsigned g =(*color >> 8)&255; + unsigned r = *color & 255; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + struct nk_colorf after = { r*ui_alpha, g*ui_alpha, b*ui_alpha, 1 }, before = after; if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(after), nk_vec2(200,400))) { nk_layout_row_dynamic(ui_ctx, 120, 1); after = nk_color_picker(ui_ctx, after, NK_RGB); @@ -1968,21 +2044,23 @@ int ui_color3(const char *label, float *color3) { nk_layout_row_dynamic(ui_ctx, 0, 1); if (ui_color_mode == COL_RGB) { - after.r = nk_propertyf(ui_ctx, "#R:", 0, after.r, 1.0f, 0.01f,0.005f); - after.g = nk_propertyf(ui_ctx, "#G:", 0, after.g, 1.0f, 0.01f,0.005f); - after.b = nk_propertyf(ui_ctx, "#B:", 0, after.b, 1.0f, 0.01f,0.005f); + after.r = nk_propertyi(ui_ctx, "#R:", 0, after.r * 255, 255, 1,1) / 255.f; + after.g = nk_propertyi(ui_ctx, "#G:", 0, after.g * 255, 255, 1,1) / 255.f; + after.b = nk_propertyi(ui_ctx, "#B:", 0, after.b * 255, 255, 1,1) / 255.f; } else { float hsva[4]; nk_colorf_hsva_fv(hsva, after); - hsva[0] = nk_propertyf(ui_ctx, "#H:", 0, hsva[0], 1.0f, 0.01f,0.05f); - hsva[1] = nk_propertyf(ui_ctx, "#S:", 0, hsva[1], 1.0f, 0.01f,0.05f); - hsva[2] = nk_propertyf(ui_ctx, "#V:", 0, hsva[2], 1.0f, 0.01f,0.05f); + hsva[0] = nk_propertyi(ui_ctx, "#H:", 0, hsva[0] * 255, 255, 1,1) / 255.f; + hsva[1] = nk_propertyi(ui_ctx, "#S:", 0, hsva[1] * 255, 255, 1,1) / 255.f; + hsva[2] = nk_propertyi(ui_ctx, "#V:", 0, hsva[2] * 255, 255, 1,1) / 255.f; after = nk_hsva_colorfv(hsva); } + r = after.r * 255; + g = after.g * 255; + b = after.b * 255; + *color = rgba(r,g,b,a); - color3[0] = after.r * 255; - color3[1] = after.g * 255; - color3[2] = after.b * 255; + nk_label(ui_ctx, va("#%02X%02X%02X", r, g, b), NK_TEXT_CENTERED); nk_combo_end(ui_ctx); } @@ -2055,6 +2133,8 @@ int ui_bool(const char *label, bool *enabled ) { return chg; } +static int ui_num_signs = 0; + int ui_int(const char *label, int *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; @@ -2076,6 +2156,45 @@ int ui_unsigned(const char *label, unsigned *v) { *v = (unsigned)nk_propertyd(ui_ctx, "#", 0, *v, UINT_MAX, 1,1); return prev != *v; } +int ui_unsigned2(const char *label, unsigned *v) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+2u %+2u", v[0], v[1]) : + va("%2u, %2u", v[0], v[1]); + + if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { + nk_layout_row_dynamic(ui_ctx, 0, 1); + unsigned prev0 = v[0]; nk_property_int(ui_ctx, "#X:", 0, &v[0], INT_MAX, 1,0.5f); + unsigned prev1 = v[1]; nk_property_int(ui_ctx, "#Y:", 0, &v[1], INT_MAX, 1,0.5f); + nk_combo_end(ui_ctx); + return prev0 != v[0] || prev1 != v[1]; + } + return 0; +} +int ui_unsigned3(const char *label, unsigned *v) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+2u %+2u %+2u", v[0], v[1], v[2]) : + va("%2u, %2u, %2u", v[0], v[1], v[2]); + + if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { + nk_layout_row_dynamic(ui_ctx, 0, 1); + unsigned prev0 = v[0]; nk_property_int(ui_ctx, "#X:", 0, &v[0], INT_MAX, 1,0.5f); + unsigned prev1 = v[1]; nk_property_int(ui_ctx, "#Y:", 0, &v[1], INT_MAX, 1,0.5f); + unsigned prev2 = v[2]; nk_property_int(ui_ctx, "#Z:", 0, &v[2], INT_MAX, 1,0.5f); + nk_combo_end(ui_ctx); + return prev0 != v[0] || prev1 != v[1] || prev2 != v[2]; + } + return 0; +} int ui_short(const char *label, short *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; @@ -2116,16 +2235,14 @@ int ui_clampf(const char *label, float *v, float minf, float maxf) { return prev != v[0]; } -static bool ui_float_sign = 0; - int ui_float2(const char *label, float *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.3f %+.3f", v[0], v[1]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.3f %+.3f", v[0], v[1]) : va("%.3f, %.3f", v[0], v[1]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -2144,8 +2261,8 @@ int ui_float3(const char *label, float *v) { nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.2f %+.2f %+.2f", v[0], v[1], v[2]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.2f %+.2f %+.2f", v[0], v[1], v[2]) : va("%.2f, %.2f, %.2f", v[0], v[1], v[2]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -2165,8 +2282,8 @@ int ui_float4(const char *label, float *v) { nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.2f %+.2f %+.2f %+.2f", v[0], v[1], v[2], v[3]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.2f %+.2f %+.2f %+.2f", v[0], v[1], v[2], v[3]) : va("%.2f,%.2f,%.2f,%.2f", v[0], v[1], v[2], v[3]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -2185,7 +2302,7 @@ int ui_float4(const char *label, float *v) { int ui_mat33(const char *label, float M[9]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 3; + ui_num_signs = 3; int changed = 0; changed |= ui_label(label); changed |= ui_float3(NULL, M); @@ -2196,7 +2313,7 @@ int ui_mat33(const char *label, float M[9]) { int ui_mat34(const char *label, float M[12]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 3; + ui_num_signs = 3; int changed = 0; changed |= ui_label(label); changed |= ui_float4(NULL, M); @@ -2207,7 +2324,7 @@ int ui_mat34(const char *label, float M[12]) { int ui_mat44(const char *label, float M[16]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 4; + ui_num_signs = 4; int changed = 0; changed |= ui_label(label); changed |= ui_float4(NULL, M); @@ -2452,7 +2569,7 @@ int ui_browse(const char **output, bool *inlined) { const int W = 96, H = 96; // 2048x481 px, 21x5 cells texture_t i = texture("icons/suru.png", TEXTURE_RGBA|TEXTURE_MIPMAPS); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 16, 3), BROWSER_FOLDER); // default group - browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 2, 4), BROWSER_HOME); + browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 2, 4), BROWSER_HOME); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 17, 3), BROWSER_COMPUTER); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 1, 4), BROWSER_PROJECT); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 0, 4), BROWSER_DESKTOP); @@ -2704,7 +2821,7 @@ int ui_demo(int do_windows) { struct nk_window *win = nk_window_find(ui_ctx, title); if( win ) { enum { menubar_height = 65 }; // title bar (~32) + menu bounds (~25) - struct nk_rect bounds = win->bounds; bounds.y += menubar_height; bounds.h -= menubar_height; + struct nk_rect bounds = win->bounds; bounds.y += menubar_height; bounds.h -= menubar_height; #if 1 ddraw_flush(); diff --git a/engine/split/v4k_ui.h b/engine/split/v4k_ui.h index faca236..28c6097 100644 --- a/engine/split/v4k_ui.h +++ b/engine/split/v4k_ui.h @@ -29,11 +29,13 @@ API int ui_mat44(const char *label, float mat44[16]); API int ui_double(const char *label, double *value); API int ui_buffer(const char *label, char *buffer, int buflen); API int ui_string(const char *label, char **string); -API int ui_color3(const char *label, float *color3); //[0..255] -API int ui_color3f(const char *label, float *color3); //[0..1] -API int ui_color4(const char *label, float *color4); //[0..255] -API int ui_color4f(const char *label, float *color4); //[0..1] +API int ui_color3(const char *label, unsigned *color); //[0..255] +API int ui_color3f(const char *label, float color[3]); //[0..1] +API int ui_color4(const char *label, unsigned *color); //[0..255] +API int ui_color4f(const char *label, float color[4]); //[0..1] API int ui_unsigned(const char *label, unsigned *value); +API int ui_unsigned2(const char *label, unsigned *value); +API int ui_unsigned3(const char *label, unsigned *value); API int ui_button(const char *label); API int ui_button_transparent(const char *label); API int ui_buttons(int buttons, /*labels*/...); diff --git a/engine/split/v4k_window.c b/engine/split/v4k_window.c index 3502896..0d19068 100644 --- a/engine/split/v4k_window.c +++ b/engine/split/v4k_window.c @@ -168,7 +168,7 @@ void window_drop_callback(GLFWwindow* window, int count, const char** paths) { void window_hints(unsigned flags) { #ifdef __APPLE__ //glfwInitHint( GLFW_COCOA_CHDIR_RESOURCES, GLFW_FALSE ); - glfwWindowHint( GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE ); + glfwWindowHint( GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE ); // @todo: remove silicon mac M1 hack //glfwWindowHint( GLFW_COCOA_GRAPHICS_SWITCHING, GLFW_FALSE ); //glfwWindowHint( GLFW_COCOA_MENUBAR, GLFW_FALSE ); #endif @@ -317,6 +317,9 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { //glfwWindowHint(GLFW_FLOATING, GLFW_TRUE); // always on top glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_TRUE); } + if( flags & WINDOW_BORDERLESS ) { + glfwWindowHint(GLFW_DECORATED, GLFW_FALSE); + } #endif // windowed float ratio = (float)winWidth / (winHeight + !winHeight); @@ -363,10 +366,10 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { #endif glDebugEnable(); - + // setup nuklear ui ui_ctx = nk_glfw3_init(&nk_glfw, window, NK_GLFW3_INSTALL_CALLBACKS); - + //glEnable(GL_TEXTURE_2D); // 0:disable vsync, 1:enable vsync, <0:adaptive (allow vsync when framerate is higher than syncrate and disable vsync when framerate drops below syncrate) @@ -387,7 +390,7 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { PRINTF("GPU OpenGL: %d.%d\n", GLAD_VERSION_MAJOR(gl_version), GLAD_VERSION_MINOR(gl_version)); if( FLAGS_TRANSPARENT ) { // @transparent - glfwSetWindowAttrib(window, GLFW_DECORATED, GLFW_FALSE); + glfwSetWindowAttrib(window, GLFW_DECORATED, GLFW_FALSE); // @todo: is decorated an attrib or a hint? if( scale >= 1 ) glfwMaximizeWindow(window); } #endif @@ -546,7 +549,7 @@ int window_frame_begin() { engine_tick(); } #endif // ENABLE_RETAIL - + #if 0 // deprecated // run user-defined hooks for(int i = 0; i < 64; ++i) { @@ -567,7 +570,7 @@ int window_frame_begin() { timer = 0; } #else - glfwSetWindowTitle(window, title); + glfwSetWindowTitle(window, title); #endif void input_update(); @@ -579,7 +582,7 @@ int window_frame_begin() { void window_frame_end() { // flush batching systems that need to be rendered before frame swapping. order matters. { - font_goto(0,0); + font_goto(0,0); touch_flush(); sprite_flush(); @@ -640,7 +643,7 @@ void window_shutdown() { #endif - window_loop_exit(); // finish emscripten loop automatically + window_loop_exit(); // finish emscripten loop automatically } } @@ -780,17 +783,17 @@ void window_icon(const char *file_icon) { if( !data ) data = file_read(file_icon), len = file_size(file_icon); if( data && len ) { - image_t img = image_from_mem(data, len, IMAGE_RGBA); - if( img.w && img.h && img.pixels ) { - GLFWimage images[1]; - images[0].width = img.w; - images[0].height = img.h; - images[0].pixels = img.pixels; - glfwSetWindowIcon(window, 1, images); + image_t img = image_from_mem(data, len, IMAGE_RGBA); + if( img.w && img.h && img.pixels ) { + GLFWimage images[1]; + images[0].width = img.w; + images[0].height = img.h; + images[0].pixels = img.pixels; + glfwSetWindowIcon(window, 1, images); has_icon = 1; - return; - } + return; } + } #if 0 // is(win32) HANDLE hIcon = LoadImageA(0, file_icon, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE); if( hIcon ) { @@ -825,7 +828,7 @@ int window_record(const char *outfile_mp4) { vec2 window_dpi() { vec2 dpi = vec2(1,1); -#if !defined(__EMSCRIPTEN__) && !defined(__APPLE__) +#if !is(ems) && !is(osx) // @todo: remove silicon mac M1 hack glfwGetMonitorContentScale(glfwGetPrimaryMonitor(), &dpi.x, &dpi.y); #endif return dpi; @@ -914,9 +917,9 @@ void window_fullscreen(int enabled) { } #else if( enabled ) - EM_ASM(Module.requestFullscreen(1, 1)); + EM_ASM(Module.requestFullscreen(1, 1)); else - EM_ASM(Module.exitFullscreen()); + EM_ASM(Module.exitFullscreen()); #endif #else @@ -926,7 +929,7 @@ void window_fullscreen(int enabled) { /*glfwGetWindowPos(g->window, &g->window_xpos, &g->window_ypos);*/ glfwGetWindowSize(g->window, &g->width, &g->height); glfwSetWindowMonitor(g->window, glfwGetPrimaryMonitor(), 0, 0, g->width, g->height, GLFW_DONT_CARE); - } else { + } else { glfwSetWindowMonitor(g->window, NULL, 0, 0, g->width, g->height, GLFW_DONT_CARE); } #else diff --git a/engine/split/v4k_window.h b/engine/split/v4k_window.h index 94f1fe3..3af2246 100644 --- a/engine/split/v4k_window.h +++ b/engine/split/v4k_window.h @@ -17,6 +17,7 @@ enum WINDOW_FLAGS { WINDOW_ASPECT = 0x100, // keep aspect WINDOW_FIXED = 0x200, // disable resizing WINDOW_TRANSPARENT = 0x400, + WINDOW_BORDERLESS = 0x800, WINDOW_VSYNC = 0, WINDOW_VSYNC_ADAPTIVE = 0x1000, diff --git a/engine/v4k b/engine/v4k index bdcf1b4..e6fe7cf 100644 --- a/engine/v4k +++ b/engine/v4k @@ -13943,6 +13943,7 @@ int gladLoadGL( GLADloadfunc load) { // 3rd party libs #define ARCHIVE_C // archive.c +#define BASE64_C // base64.c #define COMPRESS_C // compress.c #define ENET_IMPLEMENTATION // enet #define GJK_C // gjk @@ -232706,12 +232707,7 @@ static bool LzmaDec_Init(CLzmaDec *p, const uint8_t *raw_props) // glue.c -static -#ifdef _MSC_VER -__declspec(thread) -#else -__thread -#endif +static __thread struct { uint8_t *begin, *seek, *end; } @@ -234051,9 +234047,7 @@ static inline uint32_t DecodeMod(const uint8_t** p) { // LZ77 -static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outlen) { - ULZ_WORKMEM *u =(ULZ_WORKMEM*)ULZ_REALLOC(0, sizeof(ULZ_WORKMEM)); - +static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outlen, ULZ_WORKMEM *u) { for (int i=0; iHashTable[i]=ULZ_NIL; @@ -234135,16 +234129,14 @@ static int UlzCompressFast(const uint8_t* in, int inlen, uint8_t* out, int outle op+=run; } - ULZ_REALLOC(u, 0); return op-out; } -static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, int level) { +static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, int level, ULZ_WORKMEM *u) { if (level<1 || level>9) return 0; const int max_chain=(level<9)?1<HashTable[i]=ULZ_NIL; @@ -234269,7 +234261,6 @@ static int UlzCompress(const uint8_t* in, int inlen, uint8_t* out, int outlen, i op+=run; } - ULZ_REALLOC(u, 0); return op-out; } @@ -234326,9 +234317,11 @@ static int UlzDecompress(const uint8_t* in, int inlen, uint8_t* out, int outlen) } unsigned ulz_encode(const void *in, unsigned inlen, void *out, unsigned outlen, unsigned flags) { + static __thread ULZ_WORKMEM u; + int level = flags > 9 ? 9 : flags; // [0..(6)..9] - int rc = level ? UlzCompress((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, level) - : UlzCompressFast((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen); + int rc = level ? UlzCompress((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, level, &u) + : UlzCompressFast((uint8_t *)in, (int)inlen, (uint8_t *)out, (int)outlen, &u); return (unsigned)rc; } unsigned ulz_decode(const void *in, unsigned inlen, void *out, unsigned outlen) { @@ -234464,7 +234457,7 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned double enctime = 0; if( logfile ) tm = clock(); { - for( uint32_t inlen; (inlen=fread(inbuf, 1, BS_BYTES, in)) > 0 ; ) { + for( uint32_t inlen; (inlen=BS_BYTES * fread(inbuf, BS_BYTES, 1, in)) > 0 ; ) { uint32_t outlen[2] = {0}; best = clist[0]; @@ -234499,15 +234492,15 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned if( compr ) { uint8_t packer = (compr << 4) | flags; // store block length + compressor + compr data - if( fwrite(&outlen[0], 1, 4, out) != 4 ) goto fail; + if( fwrite(&outlen[0], 4, 1, out) != 1 ) goto fail; if( fwrite(&packer, 1, 1, out) != 1 ) goto fail; - if( fwrite(outbuf[0], 1, outlen[0], out) != outlen[0] ) goto fail; + if( fwrite(outbuf[0], outlen[0], 1, out) != 1 ) goto fail; } else { uint8_t packer = 0; // store block length + no-compressor + raw data - if( fwrite(&inlen, 1, 4, out) != 4 ) goto fail; + if( fwrite(&inlen, 4, 1, out) != 1 ) goto fail; if( fwrite(&packer, 1, 1, out) != 1 ) goto fail; - if( fwrite(inbuf, 1, inlen, out) != inlen ) goto fail; + if( fwrite(inbuf, inlen, 1, out) != 1 ) goto fail; } total_in += inlen; @@ -234541,8 +234534,8 @@ unsigned file_encode(FILE* in, FILE* out, FILE *logfile, unsigned cnum, unsigned unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder - uint8_t block8; if( fread(&block8, 1,1, in ) < 1 ) return 0; - uint8_t excess8; if( fread(&excess8, 1,1, in ) < 1 ) return 0; + uint8_t block8; if( fread(&block8, 1,1, in ) != 1 ) return 0; + uint8_t excess8; if( fread(&excess8, 1,1, in ) != 1 ) return 0; uint64_t BLOCK_SIZE = 1ull << block8; uint64_t EXCESS = 1ull << excess8; @@ -234554,15 +234547,15 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder double dectime = 0; if(logfile) tm = clock(); { - for(uint32_t inlen=0, loop=0;fread(&inlen, 1, sizeof(inlen), in)>0;++loop) { + for(uint32_t inlen=0, loop=0;fread(&inlen, sizeof(inlen), 1, in) == 1;++loop) { if (inlen>(BLOCK_SIZE+EXCESS)) goto fail; uint8_t packer; - if( fread(&packer, 1,sizeof(packer), in) <= 0 ) goto fail; + if( fread(&packer, sizeof(packer),1, in) != 1 ) goto fail; if(packer) { // read compressed - if (fread(inbuf, 1, inlen, in)!=inlen) goto fail; + if (fread(inbuf, inlen,1, in)!=1) goto fail; // decompress uint8_t compressor = packer >> 4; @@ -234570,11 +234563,11 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder if (!outlen) goto fail; } else { // read raw - if (fread(outbuf, 1, inlen, in)!=inlen) goto fail; + if (fread(outbuf, inlen,1, in)!=1) goto fail; outlen=inlen; } - if (fwrite(outbuf, 1, outlen, out) != outlen) { + if (fwrite(outbuf, outlen, 1, out) != 1) { perror("fwrite() failed"); goto fail; } @@ -234627,6 +234620,7 @@ unsigned file_decode(FILE* in, FILE* out, FILE *logfile) { // multi decoder #define ZIP_H #include #include +#include typedef struct zip zip; @@ -235150,7 +235144,7 @@ bool zip_append_file_timeinfo(zip *z, const char *entryname, const char *comment // @fixme: calc whole crc contents uint32_t crc = 0; - unsigned char buf[1<<15]; + unsigned char buf[4096]; while(!feof(in) && !ferror(in)) crc = zip__crc32(crc, buf, fread(buf, 1, sizeof(buf), in)); if(ferror(in)) return ERR(false, "Error while calculating CRC, skipping store."); @@ -259869,10 +259863,10 @@ extern const ltc_math_descriptor gmp_desc; /* ---- LTC_BASE64 Routines ---- */ #ifdef LTC_BASE64 -int base64_encode(const unsigned char *in, unsigned long len, +int base64_encodex(const unsigned char *in, unsigned long len, //< @r-lyeh +x unsigned char *out, unsigned long *outlen); -int base64_decode(const unsigned char *in, unsigned long len, +int base64_decodex(const unsigned char *in, unsigned long len, //< @r-lyeh +x unsigned char *out, unsigned long *outlen); #endif @@ -272590,7 +272584,7 @@ static int _base64_decode_internal(const unsigned char *in, unsigned long inlen @param outlen [in/out] The max size and resulting size of the decoded data @return CRYPT_OK if successful */ -int base64_decode(const unsigned char *in, unsigned long inlen, +int base64_decodex(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen) { return _base64_decode_internal(in, inlen, out, outlen, map_base64, relaxed); @@ -315369,6 +315363,148 @@ int dbg_pcall(lua_State *lua, int nargs, int nresults, int msgh){ return err; } #line 0 +#line 1 "engine/split/3rd_base64.h" +// base64 de/encoder. Based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN). +// - rlyeh, public domain + +#ifndef BASE64_H +#define BASE64_H + +unsigned base64_bounds(unsigned size); +char* base64_encode(const void *inp, unsigned inlen); // free() after use +char* base64_decode(const char *inp, unsigned inlen); // array_free() after use + +#endif + +#ifdef BASE64_C +#include +#include +#include +#include +#include + +#define BASE64_ENCODE_OUT_SIZE(s) ((unsigned int)((((s) + 2) / 3) * 4 + 1)) +#define BASE64_DECODE_OUT_SIZE(s) ((unsigned int)(((s) / 4) * 3)) + +unsigned base64_bounds(unsigned size) { + return BASE64_ENCODE_OUT_SIZE(size); +} + +char* base64_encode(const void *inp, unsigned inlen) { // free() after use + unsigned outlen = base64_bounds(inlen); + char *out_ = malloc(outlen); + out_[outlen] = 0; + + uint_least32_t v; + unsigned ii, io, rem; + char *out = (char *)out_; + const unsigned char *in = (const unsigned char *)inp; + const uint8_t base64enc_tab[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + for(io = 0, ii = 0, v = 0, rem = 0; ii < inlen; ii ++) { + unsigned char ch; + ch = in[ii]; + v = (v << 8) | ch; + rem += 8; + while (rem >= 6) { + rem -= 6; + if (io >= outlen) + return (free(out_), 0); /* truncation is failure */ + out[io ++] = base64enc_tab[(v >> rem) & 63]; + } + } + if (rem) { + v <<= (6 - rem); + if (io >= outlen) + return (free(out_), 0); /* truncation is failure */ + out[io ++] = base64enc_tab[v & 63]; + } + while(io&3) { + if(io>=outlen) return (free(out_), 0); /* truncation is failure */ + out[io++]='='; + } + if(io>=outlen) return (free(out_), 0); /* no room for null terminator */ + out[io]=0; + return out_; +} + +#ifdef array_resize +array(char) base64_decode(const char *inp, unsigned inlen) { // array_free() after use +#if 0 + unsigned long outlen = BASE64_DECODE_OUT_SIZE(inlen); + array(char) out_ = 0; array_resize(out_, outlen+1); + + if( base64_decodex((const unsigned char *)inp, (unsigned long)inlen, (unsigned char *)out_, &outlen) != CRYPT_OK ) { + array_free(out_); + return 0; + } + + array_resize(out_, outlen); + out_[outlen] = 0; + return out_; +#else + unsigned outlen = BASE64_DECODE_OUT_SIZE(inlen); + array(char) out_ = 0; array_resize(out_, outlen); + + // based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN) + uint_least32_t v; + unsigned ii, io, rem; + char *out = (char *)out_; + const unsigned char *in = (const unsigned char *)inp; + const uint8_t base64dec_tab[256]= { + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, + 255, 254, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, + 255, 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, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255 }; + + for (io = 0, ii = 0,v = 0, rem = 0; ii < inlen; ii ++) { + unsigned char ch; + if (isspace(in[ii])) + continue; + if ((in[ii]=='=') || (!in[ii])) + break; /* stop at = or null character*/ + ch = base64dec_tab[(unsigned char)in[ii]]; + if (ch == 255) + break; /* stop at a parse error */ + v = (v<<6) | ch; + rem += 6; + if (rem >= 8) { + rem -= 8; + if (io >= outlen) + return (array_free(out_), NULL); /* truncation is failure */ + out[io ++] = (v >> rem) & 255; + } + } + if (rem >= 8) { + rem -= 8; + if (io >= outlen) + return (array_free(out_), NULL); /* truncation is failure */ + out[io ++] = (v >> rem) & 255; + } + return (array_resize(out_, io), out_); +#endif +} +#endif // array_resize +#endif // BASE64_C +#line 0 //#define SQLITE_OMIT_LOAD_EXTENSION //#define SQLITE_CORE 1 //#define SQLITE_DEBUG 1 diff --git a/engine/v4k.c b/engine/v4k.c index c3c3740..b10c17f 100644 --- a/engine/v4k.c +++ b/engine/v4k.c @@ -764,11 +764,12 @@ const char *strlerp(unsigned numpairs, const char **pairs, const char *str) { // } array(char*) strsplit(const char *str, const char *separators) { + enum { SLOTS = 32 }; static __thread int slot = 0; - static __thread char *buf[16] = {0}; - static __thread array(char*) list[16] = {0}; + static __thread char *buf[SLOTS] = {0}; + static __thread array(char*) list[SLOTS] = {0}; - slot = (slot+1) % 16; + slot = (slot+1) % SLOTS; array_resize(list[slot], 0); *(buf[slot] = REALLOC(buf[slot], strlen(str)*2+1)) = '\0'; // *2 to backup pathological case where input str is only separators && include == 1 @@ -800,10 +801,11 @@ array(char*) strsplit(const char *str, const char *separators) { return list[slot]; } char* strjoin(array(char*) list, const char *separator) { + enum { SLOTS = 16 }; static __thread int slot = 0; - static __thread char* mems[16] = {0}; + static __thread char* mems[SLOTS] = {0}; - slot = (slot+1) % 16; + slot = (slot+1) % SLOTS; int num_list = array_count(list); int len = 0, inc = 0, seplen = strlen(separator); @@ -1150,10 +1152,11 @@ static int ui_using_v2_menubar = 0; nk_menu_close(ui_ctx); \ nk_menu_end(ui_ctx); \ }} -#define UI_MENU_ALIGN_RIGHT(px) { \ +#define UI_MENU_ALIGN_RIGHT(px, ...) { \ int hspace = total_space.w - span - (px) - 1.5 * ITEM_WIDTH; \ nk_layout_row_push(ui_ctx, hspace); span += hspace; \ if (nk_menu_begin_label(ui_ctx, (title), align = NK_TEXT_RIGHT, nk_vec2(1,1))) { \ + __VA_ARGS__; \ nk_menu_close(ui_ctx); \ nk_menu_end(ui_ctx); \ }} @@ -1167,9 +1170,9 @@ static int ui_using_v2_menubar = 0; #define UI_FONT_ENUM(carlito,b612) b612 // carlito -#define UI_FONT_REGULAR UI_FONT_ENUM("Carlito", "B612") "-Regular.ttf" -#define UI_FONT_HEADING UI_FONT_ENUM("Carlito", "B612") "-BoldItalic.ttf" -#define UI_FONT_TERMINAL UI_FONT_ENUM("Inconsolata", "B612Mono") "-Regular.ttf" +#define UI_FONT_REGULAR UI_FONT_ENUM("Carlito", "B612") "-Regular.ttf" +#define UI_FONT_HEADING UI_FONT_ENUM("Carlito", "B612") "-BoldItalic.ttf" +#define UI_FONT_TERMINAL UI_FONT_ENUM("Inconsolata", "B612Mono") "-Regular.ttf" #if UI_LESSER_SPACING enum { UI_SEPARATOR_HEIGHT = 5, UI_MENUBAR_ICON_HEIGHT = 20, UI_ROW_HEIGHT = 22, UI_MENUROW_HEIGHT = 32 }; @@ -1264,7 +1267,7 @@ static void nk_config_custom_fonts() { // Monospaced font. Used in terminals or consoles. for( char *data = vfs_load(UI_FONT_TERMINAL, &datalen); data; data = 0 ) { - const float font_size = UI_FONT_REGULAR_SIZE; + const float font_size = UI_FONT_REGULAR_SIZE; static const nk_rune icon_range[] = {32, 127, 0}; struct nk_font_config cfg = nk_font_config(font_size); @@ -1561,10 +1564,10 @@ vec2 ui_toolbar_(array(ui_item_t) ui_items, vec2 ui_results) { if( nk_menu_item_text(ui_ctx, item, lens[j], NK_TEXT_LEFT) ) { ui_results = vec2(i+1, j+1-1); } - } + } nk_menu_end(ui_ctx); - } + } } } @@ -1948,7 +1951,7 @@ int ui_set_enable_(int enabled) { static struct nk_input input; if (!enabled) { ui_alpha_push(0.5); - ui_ctx->style = off; // .button = off.button; + ui_ctx->style = off; // .button = off.button; input = ui_ctx->input; memset(&ui_ctx->input, 0, sizeof(ui_ctx->input)); } else { @@ -2259,7 +2262,7 @@ int ui_layout_all_load_disk(const char *mask) { const char *title = ui_layout_load_disk(k, mask, i, &out); if( title ) { struct nk_window *win = nk_window_find(ui_ctx, title); - if( win ) { + if( win ) { win->bounds.x = out.x; win->bounds.y = out.y; win->bounds.w = out.w; @@ -2383,7 +2386,7 @@ if( win ) { if( group1_any || !group2_interacting || anim_in_progress ) { struct nk_rect target = ui_layout_load_mem(idx, desktop, is_panel); - float alpha = len2sq(sub2(s->desktop, desktop)) ? 0 : UI_ANIM_ALPHA; // smooth unless we're restoring a desktop change + float alpha = len2sq(sub2(s->desktop, desktop)) ? 0 : UI_ANIM_ALPHA; // smooth unless we're restoring a desktop change #if 1 if( is_window && win->flags & NK_WINDOW_FULLSCREEN ) { target.x = 1; @@ -2399,7 +2402,7 @@ if( win ) { target.y = ((desktop.h - workarea_h) - target.h) / 2; } #endif - win->bounds = nk_rect( + win->bounds = nk_rect( win->bounds.x * alpha + target.x * (1 - alpha), win->bounds.y * alpha + target.y * (1 - alpha), win->bounds.w * alpha + target.w * (1 - alpha), @@ -2454,7 +2457,7 @@ if( is_notify ) { if( nk_begin(ui_ctx, title, start_coords, window_flags) ) { // set width for all inactive panels -struct nk_rect bounds = nk_window_get_bounds(ui_ctx); +struct nk_rect bounds = nk_window_get_bounds(ui_ctx); if( mouse_pressed && win && win->is_window_resizing ) { edge = vec2(bounds.w, bounds.h); @@ -2476,7 +2479,7 @@ if( mouse_pressed && win && win->is_window_resizing ) { } else { if(is_panel) { - ui_panel_end(); + ui_panel_end(); } else ui_window_end(); return 0; @@ -2551,7 +2554,7 @@ int ui_panel(const char *title, int flags) { if(!ui_window_has_menubar) nk_layout_row_push(ui_ctx, 70); ui_window_has_menubar = 1; - return nk_menu_begin_text_styled(ui_ctx, title, strlen(title), NK_TEXT_ALIGN_CENTERED|NK_TEXT_ALIGN_MIDDLE, nk_vec2(220, 200), &transparent_style); + return nk_menu_begin_text_styled(ui_ctx, title, strlen(title), NK_TEXT_ALIGN_CENTERED|NK_TEXT_ALIGN_MIDDLE, nk_vec2(220, 200), &transparent_style); } return ui_begin_panel_or_window_(title, flags, false); @@ -2698,7 +2701,7 @@ if( !has_icon ) { } else { char *icon_glyph = va("%.*s", icon_len, icon); -// @todo: implement nk_push_layout() +// @todo: implement nk_push_layout() // nk_rect bounds = {..}; nk_panel_alloc_space(bounds, ctx); struct nk_window *win = ui_ctx->current; struct nk_panel *layout = win->layout, copy = *layout; @@ -2729,7 +2732,7 @@ if( font ) nk_style_pop_font(ui_ctx); // old way // ui_labeicon_l_icked_L.x = is_hovering ? nk_input_has_mouse_click_down_in_rect(input, NK_BUTTON_LEFT, layout->bounds, nk_true) : 0; // new way - // this is an ugly hack to detect which icon (within a label) we're clicking on. + // this is an ugly hack to detect which icon (within a label) we're clicking on. // @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? ui_label_icon_clicked_L.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (alignment == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; @@ -2745,20 +2748,20 @@ int ui_label(const char *label) { } static int nk_label_(struct nk_context *ui_ctx, const char *text_, int align2 ) { -const struct nk_input *input = &ui_ctx->input; -struct nk_rect bounds = nk_widget_bounds(ui_ctx); -int is_hovering = nk_input_is_mouse_hovering_rect(input, bounds) && !ui_has_active_popups; -if( is_hovering ) { - struct nk_rect winbounds = nk_window_get_bounds(ui_ctx); - is_hovering &= nk_input_is_mouse_hovering_rect(input, winbounds); - is_hovering &= nk_window_has_focus(ui_ctx); -} + const struct nk_input *input = &ui_ctx->input; + struct nk_rect bounds = nk_widget_bounds(ui_ctx); + int is_hovering = nk_input_is_mouse_hovering_rect(input, bounds) && !ui_has_active_popups; + if( is_hovering ) { + struct nk_rect winbounds = nk_window_get_bounds(ui_ctx); + is_hovering &= nk_input_is_mouse_hovering_rect(input, winbounds); + is_hovering &= nk_window_has_focus(ui_ctx); + } - nk_label(ui_ctx, text_, align2); + nk_label(ui_ctx, text_, align2); -// this is an ugly hack to detect which icon (within a label) we're clicking on. -// @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? -ui_label_icon_clicked_R.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (align2 == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; + // this is an ugly hack to detect which icon (within a label) we're clicking on. + // @todo: figure out a better way to detect this... would it be better to have a ui_label_toolbar(lbl,bar) helper function instead? + ui_label_icon_clicked_R.x = is_hovering ? ( (int)((input->mouse.pos.x - bounds.x) - (align2 == NK_TEXT_RIGHT ? bounds.w : 0) ) * nk_input_is_mouse_released(input, NK_BUTTON_LEFT)) : 0; return ui_label_icon_clicked_R.x; } @@ -2935,24 +2938,60 @@ int ui_toggle(const char *label, bool *value) { return rc ? (*value ^= 1), rc : rc; } -int ui_color4f(const char *label, float *color4) { - if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - - float c[4] = { color4[0]*255, color4[1]*255, color4[2]*255, color4[3]*255 }; - int ret = ui_color4(label, c); - for( int i = 0; i < 4; ++i ) color4[i] = c[i] / 255.0f; - return ret; -} - static enum color_mode {COL_RGB, COL_HSV} ui_color_mode = COL_RGB; -int ui_color4(const char *label, float *color4) { +int ui_color4f(const char *label, float *color) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - struct nk_colorf after = { color4[0]*ui_alpha/255, color4[1]*ui_alpha/255, color4[2]*ui_alpha/255, color4[3]/255 }, before = after; + struct nk_colorf after = { color[0]*ui_alpha, color[1]*ui_alpha, color[2]*ui_alpha, color[3] }, before = after; + struct nk_colorf clamped = { clampf(color[0],0,1), clampf(color[1],0,1), clampf(color[2],0,1), clampf(color[3],0,1) }; + if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(clamped), nk_vec2(200,400))) { + nk_layout_row_dynamic(ui_ctx, 120, 1); + after = nk_color_picker(ui_ctx, after, NK_RGB); + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_color_mode = nk_option_label(ui_ctx, "RGB", ui_color_mode == COL_RGB) ? COL_RGB : ui_color_mode; + ui_color_mode = nk_option_label(ui_ctx, "HSV", ui_color_mode == COL_HSV) ? COL_HSV : ui_color_mode; + + nk_layout_row_dynamic(ui_ctx, 0, 1); + if (ui_color_mode == COL_RGB) { + after.r = nk_propertyf(ui_ctx, "#R:", -FLT_MAX, after.r, FLT_MAX, 0.01f,0.005f); + after.g = nk_propertyf(ui_ctx, "#G:", -FLT_MAX, after.g, FLT_MAX, 0.01f,0.005f); + after.b = nk_propertyf(ui_ctx, "#B:", -FLT_MAX, after.b, FLT_MAX, 0.01f,0.005f); + } else { + float hsva[4]; + nk_colorf_hsva_fv(hsva, after); + hsva[0] = nk_propertyf(ui_ctx, "#H:", -FLT_MAX, hsva[0], FLT_MAX, 0.01f,0.005f); + hsva[1] = nk_propertyf(ui_ctx, "#S:", -FLT_MAX, hsva[1], FLT_MAX, 0.01f,0.005f); + hsva[2] = nk_propertyf(ui_ctx, "#V:", -FLT_MAX, hsva[2], FLT_MAX, 0.01f,0.005f); + after = nk_hsva_colorfv(hsva); + } + nk_label(ui_ctx, va("#%02X%02X%02X", (unsigned)clampf(after.r*255,0,255), (unsigned)clampf(after.g*255,0,255), (unsigned)clampf(after.b*255,0,255)), NK_TEXT_CENTERED); + + color[0] = after.r; + color[1] = after.g; + color[2] = after.b; + color[3] = after.a; + + nk_combo_end(ui_ctx); + } + return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); +} +int ui_color4(const char *label, unsigned *color) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + unsigned a = *color >> 24; + unsigned b =(*color >> 16)&255; + unsigned g =(*color >> 8)&255; + unsigned r = *color & 255; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + struct nk_colorf after = { r*ui_alpha/255, g*ui_alpha/255, b*ui_alpha/255, a*ui_alpha/255 }, before = after; if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(after), nk_vec2(200,400))) { nk_layout_row_dynamic(ui_ctx, 120, 1); after = nk_color_picker(ui_ctx, after, NK_RGBA); @@ -2963,44 +3002,83 @@ int ui_color4(const char *label, float *color4) { nk_layout_row_dynamic(ui_ctx, 0, 1); if (ui_color_mode == COL_RGB) { - after.r = nk_propertyf(ui_ctx, "#R:", 0, after.r, 1.0f, 0.01f,0.005f); - after.g = nk_propertyf(ui_ctx, "#G:", 0, after.g, 1.0f, 0.01f,0.005f); - after.b = nk_propertyf(ui_ctx, "#B:", 0, after.b, 1.0f, 0.01f,0.005f); - after.a = nk_propertyf(ui_ctx, "#A:", 0, after.a, 1.0f, 0.01f,0.005f); + after.r = nk_propertyi(ui_ctx, "#R:", 0, after.r * 255, 255, 1,1) / 255.f; + after.g = nk_propertyi(ui_ctx, "#G:", 0, after.g * 255, 255, 1,1) / 255.f; + after.b = nk_propertyi(ui_ctx, "#B:", 0, after.b * 255, 255, 1,1) / 255.f; + after.a = nk_propertyi(ui_ctx, "#A:", 0, after.a * 255, 255, 1,1) / 255.f; } else { float hsva[4]; nk_colorf_hsva_fv(hsva, after); - hsva[0] = nk_propertyf(ui_ctx, "#H:", 0, hsva[0], 1.0f, 0.01f,0.05f); - hsva[1] = nk_propertyf(ui_ctx, "#S:", 0, hsva[1], 1.0f, 0.01f,0.05f); - hsva[2] = nk_propertyf(ui_ctx, "#V:", 0, hsva[2], 1.0f, 0.01f,0.05f); - hsva[3] = nk_propertyf(ui_ctx, "#A:", 0, hsva[3], 1.0f, 0.01f,0.05f); + hsva[0] = nk_propertyi(ui_ctx, "#H:", 0, hsva[0] * 255, 255, 1,1) / 255.f; + hsva[1] = nk_propertyi(ui_ctx, "#S:", 0, hsva[1] * 255, 255, 1,1) / 255.f; + hsva[2] = nk_propertyi(ui_ctx, "#V:", 0, hsva[2] * 255, 255, 1,1) / 255.f; + hsva[3] = nk_propertyi(ui_ctx, "#A:", 0, hsva[3] * 255, 255, 1,1) / 255.f; after = nk_hsva_colorfv(hsva); } + r = after.r * 255; + g = after.g * 255; + b = after.b * 255; + a = after.a * 255; + *color = rgba(r,g,b,a); - color4[0] = after.r * 255; - color4[1] = after.g * 255; - color4[2] = after.b * 255; - color4[3] = after.a * 255; + nk_label(ui_ctx, va("#%02X%02X%02X%02X", r, g, b, a), NK_TEXT_CENTERED); nk_combo_end(ui_ctx); } return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); } -int ui_color3f(const char *label, float *color3) { - float c[3] = { color3[0]*255, color3[1]*255, color3[2]*255 }; - int ret = ui_color3(label, c); - for( int i = 0; i < 3; ++i ) color3[i] = c[i] / 255.0f; - return ret; -} - -int ui_color3(const char *label, float *color3) { +int ui_color3f(const char *label, float *color) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - struct nk_colorf after = { color3[0]*ui_alpha/255, color3[1]*ui_alpha/255, color3[2]*ui_alpha/255, 1 }, before = after; + struct nk_colorf after = { color[0]*ui_alpha, color[1]*ui_alpha, color[2]*ui_alpha, ui_alpha }, before = after; + struct nk_colorf clamped = { clampf(color[0],0,1), clampf(color[1],0,1), clampf(color[2],0,1), 1 }; + if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(clamped), nk_vec2(200,400))) { + nk_layout_row_dynamic(ui_ctx, 120, 1); + after = nk_color_picker(ui_ctx, after, NK_RGB); + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_color_mode = nk_option_label(ui_ctx, "RGB", ui_color_mode == COL_RGB) ? COL_RGB : ui_color_mode; + ui_color_mode = nk_option_label(ui_ctx, "HSV", ui_color_mode == COL_HSV) ? COL_HSV : ui_color_mode; + + nk_layout_row_dynamic(ui_ctx, 0, 1); + if (ui_color_mode == COL_RGB) { + after.r = nk_propertyf(ui_ctx, "#R:", -FLT_MAX, after.r, FLT_MAX, 0.01f,0.005f); + after.g = nk_propertyf(ui_ctx, "#G:", -FLT_MAX, after.g, FLT_MAX, 0.01f,0.005f); + after.b = nk_propertyf(ui_ctx, "#B:", -FLT_MAX, after.b, FLT_MAX, 0.01f,0.005f); + } else { + float hsva[4]; + nk_colorf_hsva_fv(hsva, after); + hsva[0] = nk_propertyf(ui_ctx, "#H:", -FLT_MAX, hsva[0], FLT_MAX, 0.01f,0.005f); + hsva[1] = nk_propertyf(ui_ctx, "#S:", -FLT_MAX, hsva[1], FLT_MAX, 0.01f,0.005f); + hsva[2] = nk_propertyf(ui_ctx, "#V:", -FLT_MAX, hsva[2], FLT_MAX, 0.01f,0.005f); + after = nk_hsva_colorfv(hsva); + } + nk_label(ui_ctx, va("#%02X%02X%02X", (unsigned)clampf(after.r*255,0,255), (unsigned)clampf(after.g*255,0,255), (unsigned)clampf(after.b*255,0,255)), NK_TEXT_CENTERED); + + color[0] = after.r; + color[1] = after.g; + color[2] = after.b; + + nk_combo_end(ui_ctx); + } + return !!memcmp(&before.r, &after.r, sizeof(struct nk_colorf)); +} +int ui_color3(const char *label, unsigned *color) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + unsigned a = *color >> 24; + unsigned b =(*color >> 16)&255; + unsigned g =(*color >> 8)&255; + unsigned r = *color & 255; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + struct nk_colorf after = { r*ui_alpha, g*ui_alpha, b*ui_alpha, 1 }, before = after; if (nk_combo_begin_color(ui_ctx, nk_rgb_cf(after), nk_vec2(200,400))) { nk_layout_row_dynamic(ui_ctx, 120, 1); after = nk_color_picker(ui_ctx, after, NK_RGB); @@ -3011,21 +3089,23 @@ int ui_color3(const char *label, float *color3) { nk_layout_row_dynamic(ui_ctx, 0, 1); if (ui_color_mode == COL_RGB) { - after.r = nk_propertyf(ui_ctx, "#R:", 0, after.r, 1.0f, 0.01f,0.005f); - after.g = nk_propertyf(ui_ctx, "#G:", 0, after.g, 1.0f, 0.01f,0.005f); - after.b = nk_propertyf(ui_ctx, "#B:", 0, after.b, 1.0f, 0.01f,0.005f); + after.r = nk_propertyi(ui_ctx, "#R:", 0, after.r * 255, 255, 1,1) / 255.f; + after.g = nk_propertyi(ui_ctx, "#G:", 0, after.g * 255, 255, 1,1) / 255.f; + after.b = nk_propertyi(ui_ctx, "#B:", 0, after.b * 255, 255, 1,1) / 255.f; } else { float hsva[4]; nk_colorf_hsva_fv(hsva, after); - hsva[0] = nk_propertyf(ui_ctx, "#H:", 0, hsva[0], 1.0f, 0.01f,0.05f); - hsva[1] = nk_propertyf(ui_ctx, "#S:", 0, hsva[1], 1.0f, 0.01f,0.05f); - hsva[2] = nk_propertyf(ui_ctx, "#V:", 0, hsva[2], 1.0f, 0.01f,0.05f); + hsva[0] = nk_propertyi(ui_ctx, "#H:", 0, hsva[0] * 255, 255, 1,1) / 255.f; + hsva[1] = nk_propertyi(ui_ctx, "#S:", 0, hsva[1] * 255, 255, 1,1) / 255.f; + hsva[2] = nk_propertyi(ui_ctx, "#V:", 0, hsva[2] * 255, 255, 1,1) / 255.f; after = nk_hsva_colorfv(hsva); } + r = after.r * 255; + g = after.g * 255; + b = after.b * 255; + *color = rgba(r,g,b,a); - color3[0] = after.r * 255; - color3[1] = after.g * 255; - color3[2] = after.b * 255; + nk_label(ui_ctx, va("#%02X%02X%02X", r, g, b), NK_TEXT_CENTERED); nk_combo_end(ui_ctx); } @@ -3098,6 +3178,8 @@ int ui_bool(const char *label, bool *enabled ) { return chg; } +static int ui_num_signs = 0; + int ui_int(const char *label, int *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; @@ -3119,6 +3201,45 @@ int ui_unsigned(const char *label, unsigned *v) { *v = (unsigned)nk_propertyd(ui_ctx, "#", 0, *v, UINT_MAX, 1,1); return prev != *v; } +int ui_unsigned2(const char *label, unsigned *v) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+2u %+2u", v[0], v[1]) : + va("%2u, %2u", v[0], v[1]); + + if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { + nk_layout_row_dynamic(ui_ctx, 0, 1); + unsigned prev0 = v[0]; nk_property_int(ui_ctx, "#X:", 0, &v[0], INT_MAX, 1,0.5f); + unsigned prev1 = v[1]; nk_property_int(ui_ctx, "#Y:", 0, &v[1], INT_MAX, 1,0.5f); + nk_combo_end(ui_ctx); + return prev0 != v[0] || prev1 != v[1]; + } + return 0; +} +int ui_unsigned3(const char *label, unsigned *v) { + if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; + + nk_layout_row_dynamic(ui_ctx, 0, 2); + ui_label_(label, NK_TEXT_LEFT); + + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+2u %+2u %+2u", v[0], v[1], v[2]) : + va("%2u, %2u, %2u", v[0], v[1], v[2]); + + if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { + nk_layout_row_dynamic(ui_ctx, 0, 1); + unsigned prev0 = v[0]; nk_property_int(ui_ctx, "#X:", 0, &v[0], INT_MAX, 1,0.5f); + unsigned prev1 = v[1]; nk_property_int(ui_ctx, "#Y:", 0, &v[1], INT_MAX, 1,0.5f); + unsigned prev2 = v[2]; nk_property_int(ui_ctx, "#Z:", 0, &v[2], INT_MAX, 1,0.5f); + nk_combo_end(ui_ctx); + return prev0 != v[0] || prev1 != v[1] || prev2 != v[2]; + } + return 0; +} int ui_short(const char *label, short *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; @@ -3159,16 +3280,14 @@ int ui_clampf(const char *label, float *v, float minf, float maxf) { return prev != v[0]; } -static bool ui_float_sign = 0; - int ui_float2(const char *label, float *v) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.3f %+.3f", v[0], v[1]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.3f %+.3f", v[0], v[1]) : va("%.3f, %.3f", v[0], v[1]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -3187,8 +3306,8 @@ int ui_float3(const char *label, float *v) { nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.2f %+.2f %+.2f", v[0], v[1], v[2]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.2f %+.2f %+.2f", v[0], v[1], v[2]) : va("%.2f, %.2f, %.2f", v[0], v[1], v[2]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -3208,8 +3327,8 @@ int ui_float4(const char *label, float *v) { nk_layout_row_dynamic(ui_ctx, 0, 2); ui_label_(label, NK_TEXT_LEFT); - char *buffer = ui_float_sign ? - --ui_float_sign, va("%+.2f %+.2f %+.2f %+.2f", v[0], v[1], v[2], v[3]) : + char *buffer = ui_num_signs ? + --ui_num_signs, va("%+.2f %+.2f %+.2f %+.2f", v[0], v[1], v[2], v[3]) : va("%.2f,%.2f,%.2f,%.2f", v[0], v[1], v[2], v[3]); if (nk_combo_begin_label(ui_ctx, buffer, nk_vec2(200,200))) { @@ -3228,7 +3347,7 @@ int ui_float4(const char *label, float *v) { int ui_mat33(const char *label, float M[9]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 3; + ui_num_signs = 3; int changed = 0; changed |= ui_label(label); changed |= ui_float3(NULL, M); @@ -3239,7 +3358,7 @@ int ui_mat33(const char *label, float M[9]) { int ui_mat34(const char *label, float M[12]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 3; + ui_num_signs = 3; int changed = 0; changed |= ui_label(label); changed |= ui_float4(NULL, M); @@ -3250,7 +3369,7 @@ int ui_mat34(const char *label, float M[12]) { int ui_mat44(const char *label, float M[16]) { if( label && ui_filter && ui_filter[0] ) if( !strstri(label, ui_filter) ) return 0; - ui_float_sign = 4; + ui_num_signs = 4; int changed = 0; changed |= ui_label(label); changed |= ui_float4(NULL, M); @@ -3495,7 +3614,7 @@ int ui_browse(const char **output, bool *inlined) { const int W = 96, H = 96; // 2048x481 px, 21x5 cells texture_t i = texture("icons/suru.png", TEXTURE_RGBA|TEXTURE_MIPMAPS); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 16, 3), BROWSER_FOLDER); // default group - browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 2, 4), BROWSER_HOME); + browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 2, 4), BROWSER_HOME); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 17, 3), BROWSER_COMPUTER); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 1, 4), BROWSER_PROJECT); browser_config_dir(icon_load_rect(i.id, i.w, i.h, W, H, 0, 4), BROWSER_DESKTOP); @@ -3747,7 +3866,7 @@ int ui_demo(int do_windows) { struct nk_window *win = nk_window_find(ui_ctx, title); if( win ) { enum { menubar_height = 65 }; // title bar (~32) + menu bounds (~25) - struct nk_rect bounds = win->bounds; bounds.y += menubar_height; bounds.h -= menubar_height; + struct nk_rect bounds = win->bounds; bounds.y += menubar_height; bounds.h -= menubar_height; #if 1 ddraw_flush(); @@ -3795,7 +3914,7 @@ static AudioUnit midi_out_handle = 0; static void midi_init() { #if is(win32) && !is(gcc) if( midiOutGetNumDevs() != 0 ) { - midiOutOpen(&midi_out_handle, 0, 0, 0, 0); + midiOutOpen(&midi_out_handle, 0, 0, 0, 0); } #elif is(osx) AUGraph graph; @@ -4074,17 +4193,17 @@ int audio_init( int flags ) { ma_backend_wasapi, // WASAPI | Windows Vista+ ma_backend_dsound, // DirectSound | Windows XP+ ma_backend_winmm, // WinMM | Windows XP+ (may work on older versions, but untested) - ma_backend_coreaudio, // Core Audio | macOS, iOS + ma_backend_coreaudio, // Core Audio | macOS, iOS ma_backend_pulseaudio, // PulseAudio | Cross Platform (disabled on Windows, BSD and Android) - ma_backend_alsa, // ALSA | Linux - ma_backend_oss, // OSS | FreeBSD + ma_backend_alsa, // ALSA | Linux + ma_backend_oss, // OSS | FreeBSD ma_backend_jack, // JACK | Cross Platform (disabled on BSD and Android) ma_backend_opensl, // OpenSL ES | Android (API level 16+) ma_backend_webaudio, // Web Audio | Web (via Emscripten) - ma_backend_sndio, // sndio | OpenBSD - ma_backend_audio4, // audio(4) | NetBSD, OpenBSD + ma_backend_sndio, // sndio | OpenBSD + ma_backend_audio4, // audio(4) | NetBSD, OpenBSD ma_backend_aaudio, // AAudio | Android 8+ - ma_backend_custom, // Custom | Cross Platform + ma_backend_custom, // Custom | Cross Platform ma_backend_null, // Null | Cross Platform (not used on Web) // Lowest priority #endif @@ -5827,12 +5946,13 @@ typedef struct cook_subscript_t { char *script; char *outname; int compress_level; + uint64_t pass_ns, gen_ns, exe_ns, zip_ns; } cook_subscript_t; typedef struct cook_script_t { cook_subscript_t cs[8]; - int num_passes; + uint64_t pass_ns, gen_ns, exe_ns, zip_ns; } cook_script_t; static @@ -5846,6 +5966,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out // - if no script is going to be generated, output is in fact input file. // - no compression is going to be required. cook_subscript_t cs = { 0 }; + cs.gen_ns -= time_ns(); // reuse script heap from last call if possible (optimization) static __thread char *script = 0; @@ -5858,6 +5979,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out map_clear(symbols); map_clear(groups); + map_find_or_add(symbols, "INFILE", STRDUP(infile)); map_find_or_add(symbols, "INPUT", STRDUP(infile)); map_find_or_add(symbols, "PRETTY", STRDUP(infile + ART_SKIP_ROOT)); // pretty (truncated) input (C:/prj/V4K/art/file.wav -> file.wav) @@ -5909,10 +6031,15 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } lines[i] = line = nl; +#if 0 static thread_mutex_t lock, *init = 0; if(!init) thread_mutex_init(init = &lock); thread_mutex_lock( &lock ); system(line); // strcatf(&script, "%s\n", line); thread_mutex_unlock( &lock ); +#else + // append line + strcatf(&script, "%s\n", line); +#endif continue; } @@ -6060,15 +6187,15 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } } char *compression = 0; - for each_map(groups, char*, key, char*, val) { - if( isdigit(key[0]) ) { + for each_map_ptr_sorted(groups, char*, key, char*, val) { // sorted iteration, so hopefully '0' no compression gets evaluated first + if( !compression && isdigit((*key)[0]) ) { char *comma = va(",%s,", ext); - if( !strcmpi(val,ext) || strbegi(val, comma+1) || strstri(val, comma) || strendi(val, va(",%s", ext))) { - compression = key; + if( !strcmpi(*val,ext) || strbegi(*val, comma+1) || strstri(*val, comma) || strendi(*val, va(",%s", ext))) { + compression = (*key); } comma = va(",%s,", belongs_to); - if( !strcmpi(val,ext) || strbegi(val, comma+1) || strstri(val, comma) || strendi(val, va(",%s", ext))) { - compression = key; + if( !strcmpi(*val,ext) || strbegi(*val, comma+1) || strstri(*val, comma) || strendi(*val, va(",%s", ext))) { + compression = (*key); } } } @@ -6128,6 +6255,7 @@ cook_script_t cook_script(const char *rules, const char *infile, const char *out } cs.outname = cs.outname ? cs.outname : (char*)infile; + cs.gen_ns += time_ns(); ASSERT(mcs.num_passes < countof(mcs.cs)); mcs.cs[mcs.num_passes++] = cs; @@ -6159,8 +6287,8 @@ array(struct fs) zipscan_filter(int threadid, int numthreads) { array(struct fs) fs = 0; for( int i = 0, end = array_count(fs_now); i < end; ++i ) { // during workload distribution, we assign random files to specific thread buckets. - // we achieve this by hashing the basename of the file. we used to hash also the path - // long time ago but that is less resilient to file relocations across the repository. + // we achieve this by hashing the basename of the file. we used to hash also the path + // long time ago but that is less resilient to file relocations across the repository. // excluding the file extension from the hash also helps from external file conversions. char *fname = file_name(fs_now[i].fname); char *sign = strrchr(fname, '@'); if(sign) *sign = '\0'; // special char (multi-pass cooks) @@ -6259,6 +6387,11 @@ int cook(void *userdata) { volatile int *progress = &job->progress; *progress = 0; + // preload a few large binaries +// dll("tools/furnace.exe", 0); +// dll("tools/assimp-vc143-mt.dll", 0); +// dll("tools/ffmpeg.exe", 0); + // scan disk from fs_now snapshot array(struct fs) filtered = zipscan_filter(job->threadid, job->numthreads); //printf("Scanned: %d items found\n", array_count(now)); @@ -6297,6 +6430,13 @@ int cook(void *userdata) { zip_append_file/*_timeinfo*/(z, deleted[i], comment, in, 0/*, tm_now*/); fclose(in); } + + // generate cook metrics. you usually do `game.exe --cook-stats && (type *.csv | sort /R > cook.csv)` + static __thread FILE *statsfile = 0; + if(flag("--cook-stats")) + fseek(statsfile = fopen(va("cook%d.csv",job->threadid), "a+t"), 0L, SEEK_END); + if(statsfile && ftell(statsfile) == 0) fprintf(statsfile,"%10s,%10s,%10s,%10s,%10s, %s\n","+total_ms","gen_ms","exe_ms","zip_ms","pass","file"); + // added or changed files for( int i = 0, end = array_count(uncooked); i < end && !cook_cancelling; ++i ) { *progress = ((i+1) == end ? 90 : (i * 90) / end); // (i+i>0) * 100.f / end; @@ -6323,43 +6463,46 @@ int cook(void *userdata) { } } - // invoke cooking script and recap status - const char *rc_output = app_exec(cs.script); - int rc = atoi(rc_output); - int outlen = file_size(cs.outfile); - int failed = cs.script[0] ? rc || !outlen : 0; - - // print errors - if( failed ) { - PRINTF("Import failed: %s while executing:\n%s\nReturned:\n%s\n", cs.outname, cs.script, rc_output); - continue; - } - - // special char (multi-pass cook). newly generated file: refresh values - // ensure newly created files by cook are also present on repo/disc for further cook passes - if( pass > 0 ) { // && strchr(cs.outname, '@') ) { // pass>0 is a small optimization // special char (multi-pass cooks) - file_delete(cs.outname); - file_move(cs.outfile, cs.outname); - inlen = file_size(infile = cs.outfile = cs.outname); - } + // invoke cooking script + mcs.cs[pass].exe_ns -= time_ns(); + // invoke cooking script + const char *rc_output = app_exec(cs.script); + // recap status + int rc = atoi(rc_output); + // int outlen = file_size(cs.outfile); + int failed = rc; // cs.script[0] ? rc || !outlen : 0; + // print errors + if( failed ) { + PRINTF("Import failed: %s while executing:\n%s\nReturned:\n%s\n", cs.outname, cs.script, rc_output); + continue; + } + if( pass > 0 ) { // (multi-pass cook) + // newly generated file: refresh values + // ensure newly created files by cook are also present on repo/disc for further cook passes + file_delete(cs.outname); + file_move(cs.outfile, cs.outname); + inlen = file_size(infile = cs.outfile = cs.outname); + } + mcs.cs[pass].exe_ns += time_ns(); // process only if included. may include optional compression. + mcs.cs[pass].zip_ns -= time_ns(); if( cs.compress_level >= 0 ) { - FILE *in = fopen(cs.outfile, "rb"); - -#if 0 - struct stat st; stat(infile, &st); - struct tm *timeinfo = localtime(&st.st_mtime); - ASSERT(timeinfo); -#endif + FILE *in = fopen(cs.outfile ? cs.outfile : infile, "rb"); + if(!in) in = fopen(infile, "rb"); char *comment = va("%d", inlen); - if( !zip_append_file/*_timeinfo*/(z, infile, comment, in, cs.compress_level/*, timeinfo*/) ) { + if( !zip_append_file(z, infile, comment, in, cs.compress_level) ) { PANIC("failed to add processed file into %s: %s(%s)", zipfile, cs.outname, infile); } fclose(in); } + mcs.cs[pass].zip_ns += time_ns(); + + // stats per subscript + mcs.cs[pass].pass_ns = mcs.cs[pass].gen_ns + mcs.cs[pass].exe_ns + mcs.cs[pass].zip_ns; + if(statsfile) fprintf(statsfile, "%10.f,%10.f,%10.f,%10.f,%10d, \"%s\"\n", mcs.cs[pass].pass_ns/1e6, mcs.cs[pass].gen_ns/1e6, mcs.cs[pass].exe_ns/1e6, mcs.cs[pass].zip_ns/1e6, pass+1, infile); } } @@ -6388,13 +6531,13 @@ int cook_async( void *userdata ) { // tcc: only a single running thread shall pass, because of racing shared state due to missing thread_local support at compiler level ifdef(tcc, thread_mutex_lock( job->lock )); - ifdef(osx, thread_mutex_lock( job->lock )); + ifdef(osx, thread_mutex_lock( job->lock )); // @todo: remove silicon mac M1 hack int ret = cook(userdata); // tcc: only a single running thread shall pass, because of racing shared state due to missing thread_local support at compiler level + ifdef(osx, thread_mutex_unlock( job->lock )); // @todo: remove silicon mac M1 hack ifdef(tcc, thread_mutex_unlock( job->lock )); - ifdef(osx, thread_mutex_unlock( job->lock )); thread_exit( ret ); return ret; @@ -6417,7 +6560,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { HOME[ strlen(HOME) - strlen(file_name(cook_ini)) ] = '\0'; // -> tools/ @leak #endif - ART_LEN = 0; //strlen(app_path()); + ART_LEN = 0; //strlen(app_path()); /* = MAX_PATH; for each_substring(ART, ",", art_folder) { ART_LEN = mini(ART_LEN, strlen(art_folder)); @@ -6473,6 +6616,14 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { EDITOR = out; // @leak assert( EDITOR[strlen(EDITOR) - 1] == '/' ); } + + // small optimization for upcoming parser: remove whole comments from file + array(char*) lines = strsplit(rules, "\r\n"); + for( int i = 0; i < array_count(lines); ) { + if( lines[i][0] == ';' ) array_erase_slow(lines, i); + else ++i; + } + rules = STRDUP( strjoin(lines, "\n") ); } if( !masks ) { @@ -6519,7 +6670,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { if( strend(fname, ".obj") ) { char header[4] = {0}; for( FILE *in = fopen(fname, "rb"); in; fclose(in), in = NULL) { - fread(header, 1, 2, in); + fread(header, 2, 1, in); } if( !memcmp(header, "\x64\x86", 2) ) continue; if( !memcmp(header, "\x00\x00", 2) ) continue; @@ -6531,7 +6682,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { snprintf(extdot, 32, "%s.", dot); // .png -> .png. // exclude vc/gcc/clang files if( strstr(fname, ".a.o.pdb.lib.ilk.exp.dSYM.") ) // must end with dot - continue; + continue; } // @todo: normalize path & rebase here (absolute to local) @@ -6555,7 +6706,7 @@ bool cook_start( const char *cook_ini, const char *masks, int flags ) { fi.stamp = file_stamp10(fname); // timestamp in base10(yyyymmddhhmmss) array_push(fs_now, fi); - } + } cook_debug = !!( flags & COOK_DEBUGLOG ); cook_cancelable = !!( flags & COOK_CANCELABLE ); @@ -6630,79 +6781,6 @@ bool have_tools() { #line 1 "engine/split/v4k_data.c" -static -array(char) base64__decode(const char *in_, unsigned inlen) { - // from libtomcrypt - #define BASE64_ENCODE_OUT_SIZE(s) (((s) + 2) / 3 * 4) - #define BASE64_DECODE_OUT_SIZE(s) (((s)) / 4 * 3) - -#if 1 - unsigned long outlen = BASE64_DECODE_OUT_SIZE(inlen); - array(char) out_ = 0; array_resize(out_, outlen); - - if( base64_decode((const unsigned char *)in_, (unsigned long)inlen, (unsigned char *)out_, &outlen) != CRYPT_OK ) { - array_free(out_); - return 0; - } - - array_resize(out_, outlen); - return out_; -#else - unsigned outlen = BASE64_DECODE_OUT_SIZE(inlen); - array(char) out_ = 0; array_resize(out_, outlen); - - // based on code by Jon Mayo - November 13, 2003 (PUBLIC DOMAIN) - uint_least32_t v; - unsigned ii, io, rem; - char *out = (char *)out_; - const unsigned char *in = (const unsigned char *)in_; - const uint8_t base64dec_tab[256]= { - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255, 62,255,255, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255, 0,255,255, - 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255, 63, - 255, 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,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - }; - - for (io = 0, ii = 0,v = 0, rem = 0; ii < inlen; ii ++) { - unsigned char ch; - if (isspace(in[ii])) - continue; - if ((in[ii]=='=') || (!in[ii])) - break; /* stop at = or null character*/ - ch = base64dec_tab[(unsigned char)in[ii]]; - if (ch == 255) - break; /* stop at a parse error */ - v = (v<<6) | ch; - rem += 6; - if (rem >= 8) { - rem -= 8; - if (io >= outlen) - return (array_free(out_), NULL); /* truncation is failure */ - out[io ++] = (v >> rem) & 255; - } - } - if (rem >= 8) { - rem -= 8; - if (io >= outlen) - return (array_free(out_), NULL); /* truncation is failure */ - out[io ++] = (v >> rem) & 255; - } - return (array_resize(out_, io), out_); -#endif -} - static array(json5) roots; static array(char*) sources; @@ -6838,7 +6916,7 @@ static void *xml_path(struct xml *node, char *path, int down) { // Find the first sibling with the given tag name (may be the same node) struct xml *next = down ? xml_find_down(node, tag) : xml_find(node, tag); return xml_path(next, &path[ sep ], 1); - } + } } if( type == '$' ) { return (void*)( node->down ? xml_text( node->down ) : xml_tag( node ) ); @@ -6867,7 +6945,7 @@ unsigned (xml_count)(char *key) { if( !node ) return 0; const char *tag = xml_tag(node); unsigned count = 1; - while( (node = xml_find_next(node, tag)) != 0) ++count; + while( (node = xml_find_next(node, tag)) != 0) ++count; return count; } array(char) (xml_blob)(char *key) { // base64 blob @@ -6875,7 +6953,7 @@ array(char) (xml_blob)(char *key) { // base64 blob if( !node ) return 0; if( !strchr(key, '$') ) return 0; const char *data = (const char*)node; - array(char) out = base64__decode(data, strlen(data)); // either array of chars (ok) or null (error) + array(char) out = base64_decode(data, strlen(data)); // either array of chars (ok) or null (error) return out; } @@ -6957,7 +7035,7 @@ void* dll(const char *fname, const char *symbol) { fname = (const char *)buf; } else { return NULL; - } + } } #if is(win32) return (void*)GetProcAddress(fname ? LoadLibraryA(fname) : GetModuleHandleA(NULL), symbol); @@ -7446,29 +7524,29 @@ array(char*) file_list(const char *pathmasks) { ASSERT(strend(cwd, "/"), "Error: dirs like '%s' must end with slash", cwd); - dir *d = dir_open(cwd, strstr(masks,"**") ? "r" : ""); - if( d ) { - for( int i = 0; i < dir_count(d); ++i ) { - if( dir_file(d,i) ) { - // dir_name() should return full normalized paths "C:/prj/v4k/demos/art/fx/fxBloom.fs". should exclude system dirs as well - char *entry = dir_name(d,i); - char *fname = file_name(entry); + dir *d = dir_open(cwd, strstr(masks,"**") ? "r" : ""); + if( d ) { + for( int i = 0; i < dir_count(d); ++i ) { + if( dir_file(d,i) ) { + // dir_name() should return full normalized paths "C:/prj/v4k/demos/art/fx/fxBloom.fs". should exclude system dirs as well + char *entry = dir_name(d,i); + char *fname = file_name(entry); - int allowed = 0; - for each_substring(masks,";",mask) { - allowed |= strmatch(fname, mask); + int allowed = 0; + for each_substring(masks,";",mask) { + allowed |= strmatch(fname, mask); + } + if( !allowed ) continue; + + // if( strstr(fname, "/.") ) continue; // @fixme: still needed? useful? + + // insert copy + char *copy = STRDUP(entry); + array_push(list, copy); } - if( !allowed ) continue; - - // if( strstr(fname, "/.") ) continue; // @fixme: still needed? useful? - - // insert copy - char *copy = STRDUP(entry); - array_push(list, copy); } + dir_close(d); } - dir_close(d); - } } array_sort(list, strcmp); @@ -7520,7 +7598,7 @@ char *file_counter(const char *name) { static __thread map(char*, int) ext_counters; if(!init) map_init(ext_counters, less_str, hash_str), init = '\1'; - char *base = va("%s",name), *ext = file_ext(name); + char *base = va("%s",name), *ext = file_ext(name); if(ext && ext[0]) *strstr(base, ext) = '\0'; int *counter = map_find_or_add(ext_counters, ext, 0); @@ -7543,7 +7621,7 @@ void* file_sha1(const char *file) { // 20bytes sha1_init(&hs); for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { sha1_process(&hs, (const unsigned char *)buf, inlen); } } @@ -7557,7 +7635,7 @@ void* file_md5(const char *file) { // 16bytes md5_init(&hs); for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { md5_process(&hs, (const unsigned char *)buf, inlen); } } @@ -7570,7 +7648,7 @@ void* file_crc32(const char *file) { // 4bytes unsigned crc = 0; for( FILE *fp = fopen(file, "rb"); fp; fclose(fp), fp = 0) { char buf[8192]; - for( int inlen; (inlen = fread(buf, 1, sizeof(buf), fp)) > 0; ) { + for( int inlen; (inlen = sizeof(buf) * fread(buf, sizeof(buf), 1, fp)); ) { crc = zip__crc32(crc, buf, inlen); // unsigned int stbiw__crc32(unsigned char *buffer, int len) } } @@ -7791,7 +7869,7 @@ typedef struct archive_dir { } archive_dir; static archive_dir *dir_mount; -static archive_dir *dir_cache; +static archive_dir *dir_cache; #ifndef MAX_CACHED_FILES // @todo: should this be MAX_CACHED_SIZE (in MiB) instead? #define MAX_CACHED_FILES 32 // @todo: should we cache the cooked contents instead? ie, stbi() result instead of file.png? @@ -7840,7 +7918,7 @@ void vfs_reload() { #define ARK_SWAP32(x) (x) #define ARK_SWAP64(x) (x) #define ARK_REALLOC REALLOC -static uint64_t ark_fget64( FILE *in ) { uint64_t v; fread( &v, 1, 8, in ); return ARK_SWAP64(v); } +static uint64_t ark_fget64( FILE *in ) { uint64_t v; fread( &v, 8, 1, in ); return ARK_SWAP64(v); } void ark_list( const char *infile, zip **z ) { for( FILE *in = fopen(infile, "rb"); in; fclose(in), in = 0 ) while(!feof(in)) { @@ -8014,13 +8092,13 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u while( pathfile[0] == '.' && (pathfile[1] == '/' || pathfile[1] == '\\') ) pathfile += 2; // if (pathfile[0] == '/' || pathfile[1] == ':') return file_load(pathfile, size_out); // @fixme: handle current cooked /home/V4K or C:/V4K path cases within zipfiles - if( size_out ) *size_out = 0; - if( strend(pathfile, "/") ) return 0; // it's a dir - static __thread map(char*,int) misses = 0, *init = 0; if(!init) init = misses, map_init(misses, less_str, hash_str); - int *found = map_find_or_add_allocated_key(misses, STRDUP(pathfile), -1); // [-1]non-init,[false]could not cook,[true]cooked - if( found && *found == 0 ) { - return 0; - } +if( size_out ) *size_out = 0; +if( strend(pathfile, "/") ) return 0; // it's a dir +static __thread map(char*,int) misses = 0, *init = 0; if(!init) init = misses, map_init(misses, less_str, hash_str); +int *found = map_find_or_add_allocated_key(misses, STRDUP(pathfile), -1); // [-1]non-init,[false]could not cook,[true]cooked +if( found && *found == 0 ) { + return 0; +} //{ // exclude garbage from material names @@ -8066,7 +8144,7 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u } // search (cache) - if( !ptr && ! is(osx) ) { + if( !ptr && !is(osx) ) { // @todo: remove silicon mac M1 hack ptr = cache_lookup(lookup_id, &size); } @@ -8109,7 +8187,7 @@ char* vfs_load(const char *pathfile, int *size_out) { // @todo: fix leaks, vfs_u char *cmd = va("%scook" ifdef(osx,".osx",ifdef(linux,".linux",".exe"))" %s %s --cook-ini=%s --cook-additive --cook-jobs=1 --quiet", TOOLS, group1, group2, COOK_INI); // cook groups - int rc = system(cmd); + int rc = atoi(app_exec(cmd)); if(rc < 0) PANIC("cannot invoke `%scook` (return code %d)", TOOLS, rc); vfs_reload(); // @todo: optimize me. it is waaay inefficent to reload the whole VFS layout after cooking a single asset @@ -8224,33 +8302,33 @@ void* cache_insert(const char *pathfile, void *ptr, int size) { // append key/va // keep cached files within limits thread_mutex_lock(&cache_mutex); - // append to cache - archive_dir zero = {0}, *old = dir_cache; - *(dir_cache = REALLOC(0, sizeof(archive_dir))) = zero; - dir_cache->next = old; - dir_cache->path = STRDUP(pathfile); - dir_cache->size = size; - dir_cache->data = REALLOC(0, size+1); - memcpy(dir_cache->data, ptr, size); size[(char*)dir_cache->data] = 0; // copy+terminator + // append to cache + archive_dir zero = {0}, *old = dir_cache; + *(dir_cache = REALLOC(0, sizeof(archive_dir))) = zero; + dir_cache->next = old; + dir_cache->path = STRDUP(pathfile); + dir_cache->size = size; + dir_cache->data = REALLOC(0, size+1); + memcpy(dir_cache->data, ptr, size); size[(char*)dir_cache->data] = 0; // copy+terminator void *found = 0; - static int added = 0; - if( added < MAX_CACHED_FILES ) { - ++added; - } else { - // remove oldest cache entry - for( archive_dir *prev = dir_cache, *dir = prev; dir ; prev = dir, dir = dir->next ) { - if( !dir->next ) { - prev->next = 0; // break link + static int added = 0; + if( added < MAX_CACHED_FILES ) { + ++added; + } else { + // remove oldest cache entry + for( archive_dir *prev = dir_cache, *dir = prev; dir ; prev = dir, dir = dir->next ) { + if( !dir->next ) { + prev->next = 0; // break link found = dir->data; - dir->path = REALLOC(dir->path, 0); - dir->data = REALLOC(dir->data, 0); - dir = REALLOC(dir, 0); + dir->path = REALLOC(dir->path, 0); + dir->data = REALLOC(dir->data, 0); + dir = REALLOC(dir, 0); break; + } } } - } thread_mutex_unlock(&cache_mutex); @@ -8351,7 +8429,9 @@ ini_t ini_from_mem(const char *data) { } ini_t ini(const char *filename) { - return ini_from_mem(file_read(filename)); + char *kv = file_read(filename); + if(!kv) kv = vfs_read(filename); + return ini_from_mem(kv); } bool ini_write(const char *filename, const char *section, const char *key, const char *value) { @@ -10043,7 +10123,6 @@ void font_scales(const char *tag, float h1, float h2, float h3, float h4, float // 1. Calculate and save a bunch of useful variables and put them in the global font variable. void font_face_from_mem(const char *tag, const void *ttf_data, unsigned ttf_len, float font_size, unsigned flags) { unsigned index = *tag - FONT_FACE1[0]; - if( index >= 8 ) return; if( font_size <= 0 || font_size > 72 ) return; if( !ttf_data || !ttf_len ) return; @@ -11388,15 +11467,15 @@ bool input_touch_active() { #endif // !is(ems) int ui_mouse() { - ui_label2_float("X", input(MOUSE_X)); - ui_label2_float("Y", input(MOUSE_Y)); - ui_label2_float("Wheel", input(MOUSE_W)); - ui_separator(); - ui_label2_bool("Left", input(MOUSE_L)); - ui_label2_bool("Middle", input(MOUSE_M)); - ui_label2_bool("Right", input(MOUSE_R)); - ui_separator(); - for( int i = 0; i <= CURSOR_SW_AUTO; ++i ) if(ui_button(va("Cursor shape #%d", i))) window_cursor_shape(i); + ui_label2_float("X", input(MOUSE_X)); + ui_label2_float("Y", input(MOUSE_Y)); + ui_label2_float("Wheel", input(MOUSE_W)); + ui_separator(); + ui_label2_bool("Left", input(MOUSE_L)); + ui_label2_bool("Middle", input(MOUSE_M)); + ui_label2_bool("Right", input(MOUSE_R)); + ui_separator(); + for( int i = 0; i <= CURSOR_SW_AUTO; ++i ) if(ui_button(va("Cursor shape #%d", i))) window_cursor_shape(i); return 0; } @@ -11435,7 +11514,7 @@ int ui_keyboard() { } int ui_gamepad(int gamepad_id) { - input_use(gamepad_id); + input_use(gamepad_id); bool connected = !!input(GAMEPAD_CONNECTED); @@ -11443,48 +11522,48 @@ int ui_gamepad(int gamepad_id) { if( !connected ) ui_disable(); - ui_separator(); + ui_separator(); - ui_label2_bool("A", input(GAMEPAD_A) ); - ui_label2_bool("B", input(GAMEPAD_B) ); - ui_label2_bool("X", input(GAMEPAD_X) ); - ui_label2_bool("Y", input(GAMEPAD_Y) ); - ui_label2_bool("Up", input(GAMEPAD_UP) ); - ui_label2_bool("Down", input(GAMEPAD_DOWN) ); - ui_label2_bool("Left", input(GAMEPAD_LEFT) ); - ui_label2_bool("Right", input(GAMEPAD_RIGHT) ); - ui_label2_bool("Menu", input(GAMEPAD_MENU) ); - ui_label2_bool("Start", input(GAMEPAD_START) ); + ui_label2_bool("A", input(GAMEPAD_A) ); + ui_label2_bool("B", input(GAMEPAD_B) ); + ui_label2_bool("X", input(GAMEPAD_X) ); + ui_label2_bool("Y", input(GAMEPAD_Y) ); + ui_label2_bool("Up", input(GAMEPAD_UP) ); + ui_label2_bool("Down", input(GAMEPAD_DOWN) ); + ui_label2_bool("Left", input(GAMEPAD_LEFT) ); + ui_label2_bool("Right", input(GAMEPAD_RIGHT) ); + ui_label2_bool("Menu", input(GAMEPAD_MENU) ); + ui_label2_bool("Start", input(GAMEPAD_START) ); - ui_separator(); + ui_separator(); - ui_label2_float("Left pad x", input(GAMEPAD_LPADX) ); - ui_label2_float("Left pad y", input(GAMEPAD_LPADY) ); - ui_label2_float("Left trigger", input(GAMEPAD_LT) ); - ui_label2_bool("Left bumper", input(GAMEPAD_LB) ); - ui_label2_bool("Left thumb", input(GAMEPAD_LTHUMB) ); + ui_label2_float("Left pad x", input(GAMEPAD_LPADX) ); + ui_label2_float("Left pad y", input(GAMEPAD_LPADY) ); + ui_label2_float("Left trigger", input(GAMEPAD_LT) ); + ui_label2_bool("Left bumper", input(GAMEPAD_LB) ); + ui_label2_bool("Left thumb", input(GAMEPAD_LTHUMB) ); - vec2 v = input_filter_deadzone( input2(GAMEPAD_LPADX), 0.1f ); - ui_label2_float("Filtered pad x", v.x); - ui_label2_float("Filtered pad y", v.y); + vec2 v = input_filter_deadzone( input2(GAMEPAD_LPADX), 0.1f ); + ui_label2_float("Filtered pad x", v.x); + ui_label2_float("Filtered pad y", v.y); - ui_separator(); + ui_separator(); - ui_label2_float("Right pad x", input(GAMEPAD_RPADX) ); - ui_label2_float("Right pad y", input(GAMEPAD_RPADY) ); - ui_label2_float("Right trigger", input(GAMEPAD_RT) ); - ui_label2_bool("Right bumper", input(GAMEPAD_RB) ); - ui_label2_bool("Right thumb", input(GAMEPAD_RTHUMB) ); + ui_label2_float("Right pad x", input(GAMEPAD_RPADX) ); + ui_label2_float("Right pad y", input(GAMEPAD_RPADY) ); + ui_label2_float("Right trigger", input(GAMEPAD_RT) ); + ui_label2_bool("Right bumper", input(GAMEPAD_RB) ); + ui_label2_bool("Right thumb", input(GAMEPAD_RTHUMB) ); - vec2 w = input_filter_deadzone( input2(GAMEPAD_RPADX), 0.1f ); - ui_label2_float("Filtered pad x", w.x); - ui_label2_float("Filtered pad y", w.y); + vec2 w = input_filter_deadzone( input2(GAMEPAD_RPADX), 0.1f ); + ui_label2_float("Filtered pad x", w.x); + ui_label2_float("Filtered pad y", w.y); ui_enable(); input_use(0); return 0; - } +} int ui_gamepads() { for( int i = 0; i < 4; ++i ) ui_gamepad(i); @@ -12111,9 +12190,9 @@ void transpose44(mat44 m, const mat44 a) { // M[i][j] = A[j][i]; // @todo: test me // float det33 = M[0,0]*((M[1,1]*M[2,2])-(M[2,1]*M[1,2]))-M[0,1]*(M[1,0]*M[2,2]-M[2,0]*M[1,2])+M[0,2]*(M[1,0]*M[2,1]-M[2,0]*M[1,1]); // -// float det33 = +// float det33 = // rgt.x * fwd.y * upv.z - rgt.z * fwd.y * upv.x + -// rgt.y * fwd.z * upv.x - rgt.y * fwd.x * upv.z + +// rgt.y * fwd.z * upv.x - rgt.y * fwd.x * upv.z + // rgt.z * fwd.x * upv.y - rgt.x * fwd.z * upv.y; // // void transpose33(mat33 m, const mat33 a) { // M[i][j] = A[j][i]; @@ -12349,7 +12428,7 @@ void printi_( int *m, int ii, int jj ) { } void print_( float *m, int ii, int jj ) { for( int j = 0; j < jj; ++j ) { - for( int i = 0; i < ii; ++i ) printf("%8.3f ", *m++); + for( int i = 0; i < ii; ++i ) printf("%8.3f", *m++); puts(""); } // puts("---"); @@ -13419,7 +13498,7 @@ char** server_poll(unsigned timeout_ms) { } } break; case MSG_RPC: { - event.type = NETWORK_EVENT_RPC; + event.type = NETWORK_EVENT_RPC; unsigned id = *(uint32_t*)ptr; ptr += 4; char *cmdline = ptr; char *resp = rpc(id, cmdline); @@ -13430,7 +13509,7 @@ char** server_poll(unsigned timeout_ms) { msg = va("%d req:%s res:%s", 0, cmdline, resp); } break; case MSG_RPC_RESP: { - event.type = NETWORK_EVENT_RPC_RESP; + event.type = NETWORK_EVENT_RPC_RESP; msg = va("%d %s", 0, va("%s", ptr)); } break; default: @@ -13515,7 +13594,7 @@ char** client_poll(unsigned timeout_ms) { } } break; case MSG_RPC: { - event.type = NETWORK_EVENT_RPC; + event.type = NETWORK_EVENT_RPC; unsigned id = *(uint32_t*)ptr; ptr += 4; char *cmdline = ptr; char *resp = rpc(id, cmdline); @@ -13526,7 +13605,7 @@ char** client_poll(unsigned timeout_ms) { msg = va("%d req:%s res:%s", 0, cmdline, resp); } break; case MSG_RPC_RESP: { - event.type = NETWORK_EVENT_RPC_RESP; + event.type = NETWORK_EVENT_RPC_RESP; msg = va("%d %s", 0, ptr); } break; default: @@ -13550,7 +13629,7 @@ char** client_poll(unsigned timeout_ms) { msg = va( "%d timeout", 0); FREE(event.peer->data); event.peer->data = NULL; - network_put(NETWORK_RANK, -1); + network_put(NETWORK_RANK, -1); network_put(NETWORK_LIVE, 0); break; } @@ -14223,7 +14302,7 @@ static bool rd(void *buf, size_t len, size_t swap) { // return false any error a bool ret; if( in.fp ) { assert( !ferror(in.fp) && "invalid file handle (reader)" ); - ret = len == fread((char*)buf, 1, len, in.fp); + ret = 1 == fread((char*)buf, len, 1, in.fp); } else { assert( in.membuf && "invalid memory buffer (reader)"); assert( (in.offset + len <= in.memsize) && "memory overflow! (reader)"); @@ -15901,7 +15980,7 @@ void entropy( void *buf, unsigned n ) { FILE *fp = fopen( "/dev/urandom", "r" ); if( !fp ) assert(!"/dev/urandom open failed"); - size_t read = fread( buf, 1, n, fp ); + size_t read = n * fread( buf, n, 1, fp ); assert( read == n && "/dev/urandom read failed" ); fclose( fp ); } @@ -15980,7 +16059,7 @@ static map(unsigned, array(reflect_t)) members; void reflect_init() { if(!reflects) map_init_int(reflects); if(!members) map_init_int(members); - } +} AUTORUN { reflect_init(); } @@ -15992,7 +16071,7 @@ const char* symbol_naked(const char *s) { if(!strstr(s, " *") ) return s; char *copy = va("%s", s); do strswap(copy," *","*"); while( strstr(copy, " *") ); // char * -> char* - return (const char *)copy; + return (const char*)copy; } void type_inscribe(const char *TY,unsigned TYsz,const char *infos) { @@ -16108,11 +16187,11 @@ int ui_reflect(const char *filter) { // ENUMS, then FUNCTIONS, then STRUCTS unsigned masks[] = { 'E', 'F', 'S' }; for( int i = 0; i < countof(masks); ++i ) - for each_map_ptr(reflects, unsigned, k, reflect_t, R) { + for each_map_ptr(reflects, unsigned, k, reflect_t, R) { if( strmatchi(R->name, filter)) { ui_reflect_(R, filter, masks[i]); - } -} + } + } if( enabled ) ui_enable(); return 0; @@ -16153,11 +16232,11 @@ AUTOTEST { //printf("+%s vec3.%s (+%x) // %s\n", R->type, R->name, R->member_offset, R->info); } - // reflect_print("puts"); + //reflect_print("puts"); //reflect_print("TEXTURE_RGBA"); //reflect_print("vec3"); - // reflect_dump("*"); + //reflect_dump("*"); } #line 0 @@ -16260,7 +16339,7 @@ unsigned shader_geom(const char *gs, const char *vs, const char *fs, const char PRINTF(/*"!"*/"Compiling shader\n"); char *glsl_defines = ""; - if (defines) { + if( defines ) { for each_substring(defines, ",", def) { glsl_defines = va("%s#define %s\n", glsl_defines, def); } @@ -16564,7 +16643,7 @@ int ui_shaders() { if( !map_count(shader_reflect) ) return ui_label(ICON_MD_WARNING " No shaders with annotations loaded."), 0; int changed = 0; - for each_map_ptr(shader_reflect, unsigned, k, array(char*), v) { + for each_map_ptr(shader_reflect, unsigned, k, array(char*), v) { int open = 0, clicked_or_toggled = 0; char *id = va("##SHD%d", *k); char *title = va("Shader %d", *k); @@ -16731,6 +16810,27 @@ unsigned bgraf(float b, float g, float r, float a) { return rgba(r * 255, g * 255, b * 255, a * 255); } +unsigned atorgba(const char *s) { + if( s[0] != '#' ) return 0; + unsigned r = 0, g = 0, b = 0, a = 255; + int slen = strspn(s+1, "0123456789abcdefABCDEF"); + if( slen > 8 ) slen = 8; + /**/ if( slen == 6 ) sscanf(s+1, "%2x%2x%2x", &r,&g,&b); + else if( slen == 8 ) sscanf(s+1, "%2x%2x%2x%2x", &r,&g,&b,&a); + else if( slen == 3 ) sscanf(s+1, "%1x%1x%1x", &r,&g,&b ), r=r<<4|r,g=g<<4|g,b=b<<4|b; + else if( slen == 4 ) sscanf(s+1, "%1x%1x%1x%1x", &r,&g,&b,&a), r=r<<4|r,g=g<<4|g,b=b<<4|b,a=a<<4|a; + return rgba(r,g,b,a); +} +char *rgbatoa(unsigned rgba) { + unsigned a = rgba >> 24; + unsigned b =(rgba >> 16) & 255; + unsigned g =(rgba >> 8) & 255; + unsigned r = rgba & 255; + char *s = va("# "); + sprintf(s+1, "%02x%02x%02x%02x", r,g,b,a); + return s; +} + // ----------------------------------------------------------------------------- // images @@ -17617,16 +17717,19 @@ void sprite( texture_t texture, float position[3], float rotation, uint32_t colo sprite_sheet( texture, spritesheet, position, rotation, offset, scale, 0, color, false ); } -// rect(x,y,w,h) is [0..1] normalized, z-index, pos(x,y,scale), rotation (degrees), color (rgba) -void sprite_rect( texture_t t, vec4 rect, float zindex, vec3 pos, float tilt_deg, unsigned tint_rgba) { - // @todo: no need to queue if alpha or scale are zero +// rect(x,y,w,h) is [0..1] normalized, z-index, pos(x,y,scalex,scaley), rotation (degrees), color (rgba) +void sprite_rect( texture_t t, vec4 rect, float zindex, vec4 pos, float tilt_deg, unsigned tint_rgba) { + // do not queue if either alpha or scale is zero + if( 0 == (pos.z * pos.w * ((tint_rgba>>24) & 255)) ) return; + sprite_t s = {0}; - s.x = rect.x, s.y = rect.y, s.w = rect.z, s.h = rect.w; - s.cellw = s.w * t.w, s.cellh = s.h * t.h; - s.px = pos.x, s.py = pos.y, s.pz = zindex; - s.sx = s.sy = pos.z; + s.sx = pos.z, s.sy = pos.w; + + s.x = rect.x, s.y = rect.y, s.w = rect.z, s.h = rect.w; + s.cellw = s.w * s.sx * t.w, s.cellh = s.h * s.sy * t.h; + s.rgba = tint_rgba; s.ox = 0/*ox*/ * s.sx; s.oy = 0/*oy*/ * s.sy; @@ -17972,10 +18075,10 @@ tileset_t tileset(texture_t tex, unsigned tile_w, unsigned tile_h, unsigned cols return t; } -int tileset_ui( tileset_t t ) { +int ui_tileset( tileset_t t ) { ui_subimage(va("Selection #%d (%d,%d)", t.selected, t.selected % t.cols, t.selected / t.cols), t.tex.id, t.tex.w, t.tex.h, (t.selected % t.cols) * t.tile_w, (t.selected / t.cols) * t.tile_h, t.tile_w, t.tile_h); int choice; - if( (choice = ui_image(0, t.tex.id, t.tex.w,t.tex.h)) ) { + if( (choice = ui_image(0, t.tex.id, t.tex.w,t.tex.h)) ) { int px = ((choice / 100) / 100.f) * t.tex.w / t.tile_w; int py = ((choice % 100) / 100.f) * t.tex.h / t.tile_h; t.selected = px + py * t.cols; @@ -18086,7 +18189,7 @@ void tiled_render(tiled_t tmx, vec3 pos) { } } -void tiled_ui(tiled_t *t) { +void ui_tiled(tiled_t *t) { ui_label2("Loaded map", t->map_name ? t->map_name : "(none)"); ui_label2("Map dimensions", va("%dx%d", t->w, t->h)); ui_label2("Tile dimensions", va("%dx%d", t->tilew, t->tileh)); @@ -18103,7 +18206,7 @@ void tiled_ui(tiled_t *t) { if( ui_collapse(va("Sets: %d", array_count(t->layers)), va("%p",t))) { for( int i = 0; i < array_count(t->layers); ++i ) { if( ui_collapse(va("%d", i+1), va("%p%d",t,i)) ) { - t->sets[i].selected = tileset_ui( t->sets[i] ); + t->sets[i].selected = ui_tileset( t->sets[i] ); ui_collapse_end(); } } @@ -18530,7 +18633,7 @@ void spine_render(spine_t *p, vec3 offset, unsigned flags) { offsy = dir.y * r->sy; } - sprite_rect(p->texture, rect, zindex, add3(vec3(target.x,target.y,1),vec3(offsx,offsy,0)), tilt, tint); + sprite_rect(p->texture, rect, zindex, add4(vec4(target.x,target.y,1,1),vec4(offsx,offsy,0,0)), tilt, tint); } } @@ -18578,7 +18681,7 @@ void spine_animate(spine_t *p, float delta) { spine_animate_(p, &p->time, &p->maxtime, delta); } -void spine_ui(spine_t *p) { +void ui_spine(spine_t *p) { if( ui_collapse(va("Anims: %d", array_count(p->anims)), va("%p-a", p))) { for each_array_ptr(p->anims, spine_anim_t, q) { if(ui_slider2("", &p->time, va("%.2f/%.0f %.2f%%", p->time, p->maxtime, p->time * 100.f))) { @@ -18655,7 +18758,7 @@ void spine_ui(spine_t *p) { sprite_rect(p->texture, // rect: vec4(r->x*1.0/p->texture.w,r->y*1.0/p->texture.h,(r->x+r->w)*1.0/p->texture.w,(r->y+r->h)*1.0/p->texture.h), ptr4(&r->x), // atlas - 0, vec3(0,0,0), r->deg + tilt, tint); + 0, vec4(0,0,1,1), r->deg + tilt, tint); sprite_flush(); camera_get_active()->position = vec3(+window_width()/3,window_height()/2.25,2); } @@ -18900,7 +19003,7 @@ void skybox_mie_calc_sh(skybox_t *sky, float sky_intensity) { for(int i = 0; i < 6; ++i) { glGenFramebuffers(1, &sky->framebuffers[i]); glBindFramebuffer(GL_FRAMEBUFFER, sky->framebuffers[i]); - + glGenTextures(1, &sky->textures[i]); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, sky->textures[i]); @@ -18971,7 +19074,7 @@ void skybox_mie_calc_sh(skybox_t *sky, float sky_intensity) { void skybox_sh_reset(skybox_t *sky) { for (int s = 0; s < 9; s++) { sky->cubemap.sh[s] = vec3(0,0,0); - } + } } void skybox_sh_add_light(skybox_t *sky, vec3 light, vec3 dir, float strength) { @@ -19551,7 +19654,7 @@ bool postfx_end(postfx *fx) { return false; } - handle fb = *array_back(last_fb); + handle fb = *array_back(last_fb); array_pop(last_fb); fbo_bind(fb); @@ -19667,13 +19770,13 @@ int ui_fxs() { if(!fx.num_loaded) return ui_label(ICON_MD_WARNING " No Post FXs with annotations loaded."), 0; int changed = 0; - for( int i = 0; i < 64; ++i ) { - char *name = fx_name(i); if( !name ) break; - bool b = fx_enabled(i); - if( ui_bool(name, &b) ) fx_enable(i, fx_enabled(i) ^ 1); - ui_fx(i); + for( int i = 0; i < 64; ++i ) { + char *name = fx_name(i); if( !name ) break; + bool b = fx_enabled(i); + if( ui_bool(name, &b) ) fx_enable(i, fx_enabled(i) ^ 1); + ui_fx(i); ui_separator(); - } + } return changed; } @@ -20436,7 +20539,7 @@ bool model_load_textures(iqm_t *q, const struct iqmheader *hdr, model_t *model) if( material_embedded_texture ) { *material_embedded_texture = '\0'; material_embedded_texture += 5; - array(char) embedded_texture = base64__decode(material_embedded_texture, strlen(material_embedded_texture)); + array(char) embedded_texture = base64_decode(material_embedded_texture, strlen(material_embedded_texture)); //printf("%s %d\n", material_embedded_texture, array_count(embedded_texture)); //hexdump(embedded_texture, array_count(embedded_texture)); *out = texture_compressed_from_mem( embedded_texture, array_count(embedded_texture), 0 ).id; @@ -20562,7 +20665,7 @@ model_t model_from_mem(const void *mem, int len, int flags) { "att_position,att_texcoord,att_normal,att_tangent,att_instanced_matrix,,,,att_indexes,att_weights,att_vertexindex,att_color,att_bitangent","fragColor", va("SHADING_PHONG,%s", (flags&MODEL_RIMLIGHT)?"RIM":"")); // } - ASSERT(shaderprog > 0); + // ASSERT(shaderprog > 0); iqm_t *q = CALLOC(1, sizeof(iqm_t)); m.program = shaderprog; @@ -20935,13 +21038,13 @@ anims_t animations(const char *pathfile, int flags) { if( anim_file ) { // deserialize anim a.speed = 1.0; - for each_substring(anim_file, "\r\n", anim) { - int from, to; - char anim_name[128] = {0}; - if( sscanf(anim, "%*s %d-%d %127[^\r\n]", &from, &to, anim_name) != 3) continue; + for each_substring(anim_file, "\r\n", anim) { + int from, to; + char anim_name[128] = {0}; + if( sscanf(anim, "%*s %d-%d %127[^\r\n]", &from, &to, anim_name) != 3) continue; array_push(a.anims, !!strstri(anim_name, "loop") || !strcmpi(anim_name, "idle") ? loop(from, to, 0, 0) : clip(from, to, 0, 0)); // [from,to,flags] array_back(a.anims)->name = strswap(strswap(strswap(STRDUP(anim_name), "Loop", ""), "loop", ""), "()", ""); // @leak - } + } } else { // placeholder array_push(a.anims, clip(0,1,0,0)); @@ -21063,7 +21166,7 @@ void ddraw_flush_projview(mat44 proj, mat44 view) { // queue for(int i = 0; i < array_count(dd_text2d); ++i) { ddraw_color(dd_text2d[i].col); - ddraw_text(dd_text2d[i].pos, dd_text2d[i].sca, dd_text2d[i].str); + ddraw_text(dd_text2d[i].pos, dd_text2d[i].sca, dd_text2d[i].str); } // flush @@ -21094,7 +21197,7 @@ void ddraw_flush_projview(mat44 proj, mat44 view) { // clear array_resize(dd_text2d, 0); } - + glDisable(GL_LINE_SMOOTH); glDisable(GL_PROGRAM_POINT_SIZE); @@ -21311,7 +21414,7 @@ void ddraw_cube(vec3 center, float radius) { // draw_prism(center, 1, -1, vec3(0 #if 0 // @fixme: broken void ddraw_cube44(vec3 radius, mat44 M) { - float m33[9]; extract33(m33, M); // = { M[0,1,2], M[4,5,6], M[8,9,10] } + float m33[9]; extract33(m33, M); // = { M[0,1,2], M[4,5,6], M[8,9,10] } ddraw_cube33( vec3(M[12], M[13], M[14]), radius, m33 ); } #endif @@ -21468,7 +21571,7 @@ void ddraw_pyramid(vec3 center, float height, int segments) { ddraw_prism(center, 1, height, vec3(0,1,0), segments); } void ddraw_cylinder(vec3 center, float height, int segments) { - ddraw_prism(center, 1, -height, vec3(0,1,0), segments); + ddraw_prism(center, 1, -height, vec3(0,1,0), segments); } void ddraw_diamond(vec3 from, vec3 to, float size) { poly p = diamond(from, to, size); @@ -21811,9 +21914,9 @@ camera_t camera() { static camera_t cam = {0}; do_once { cam.speed = 0.50f; - cam.position = vec3(10,10,10); + cam.position = vec3(10,10,10); cam.updir = vec3(0,1,0); - cam.fov = 45; + cam.fov = 45; cam.damping = false; cam.move_friction = 0.09f; @@ -21823,18 +21926,18 @@ camera_t camera() { cam.last_look = vec2(0,0); cam.last_move = vec3(0,0,0); - // update proj & view - camera_lookat(&cam,vec3(-5,0,-5)); + // update proj & view + camera_lookat(&cam,vec3(-5,0,-5)); // @todo: remove this hack that is used to consolidate dampings if( 1 ) { vec3 zero = {0}; - for( int i = 0; i < 1000; ++i ) { + for( int i = 0; i < 1000; ++i ) { camera_moveby(&cam, zero); - camera_fps(&cam,0,0); + camera_fps(&cam,0,0); + } } } - } last_camera = old; *camera_get_active() = cam; @@ -22464,28 +22567,72 @@ const char *app_cache() { const char * app_exec( const char *cmd ) { static __thread char output[4096+16] = {0}; + char *buf = output + 16; buf[0] = 0; // memset(buf, 0, 4096); if( !cmd[0] ) return "0 "; cmd = file_normalize(cmd); int rc = -1; - char *buf = output + 16; buf[0] = 0; // memset(buf, 0, 4096); + + // pick the fastest code path per platform +#if is(osx) for( FILE *fp = popen( cmd, "r" ); fp; rc = pclose(fp), fp = 0) { - while( fgets(buf, 4096 - 1, fp) ) { - } + // while( fgets(buf, 4096 - 1, fp) ) {} } - if( rc != 0 ) { - char *r = strrchr(buf, '\r'); if(r) *r = 0; - char *n = strrchr(buf, '\n'); if(n) *n = 0; + // if( rc != 0 ) { + // char *r = strrchr(buf, '\r'); if(r) *r = 0; + // char *n = strrchr(buf, '\n'); if(n) *n = 0; + // } +#elif is(win32) + STARTUPINFOA si = {0}; si.cb = sizeof(si); + PROCESS_INFORMATION pi = {0}; + + snprintf(output+16, 4096, "cmd /c \"%s\"", cmd); + + int prio = //strstr(cmd, "ffmpeg") || strstr(cmd, "furnace") || strstr(cmd, "ass2iqe") ? + REALTIME_PRIORITY_CLASS; //: 0; + +//prio |= DETACHED_PROCESS; +//si.dwFlags = STARTF_USESTDHANDLES; + + if( CreateProcessA( + NULL, output+16, // cmdline + NULL, + NULL, + FALSE, // FALSE: dont inherit handles + prio /*CREATE_DEFAULT_ERROR_MODE|CREATE_NO_WINDOW*/, // 0|HIGH_PRIORITY_CLASS + NULL, // "", // NULL would inherit env + NULL, // current dir + &si, &pi) ) + { + // Wait for process + DWORD dwExitCode2 = WaitForSingleObject(pi.hProcess, INFINITE); + DWORD dwExitCode; GetExitCodeProcess(pi.hProcess, &dwExitCode); + rc = dwExitCode; } + else + { + // CreateProcess() failed + rc = GetLastError(); + } +#else + rc = system(cmd); +#endif + return snprintf(output, 16, "%-15d", rc), buf[-1] = ' ', output; } int app_spawn( const char *cmd ) { - if( !cmd[0] ) return -1; + if( !cmd[0] ) return false; cmd = file_normalize(cmd); - return system(cmd); +#if _WIN32 + bool ok = WinExec(va("cmd /c \"%s\"", cmd), SW_HIDE) > 31; +#else + bool ok = system(va("%s &", cmd)) == 0; +#endif + + return ok; } #if is(osx) @@ -22589,7 +22736,7 @@ char *callstack( int traces ) { // should concat addresses into a multi-address line char *binary = symbols[i]; - char *address = strchr( symbols[i], '(' ) + 1; + char *address = strchr( symbols[i], '(' ) + 1; *strrchr( address, ')') = '\0'; *(address - 1) = '\0'; for( FILE *fp = popen(va("addr2line -e %s %s", binary, address), "r" ); fp ; pclose(fp), fp = 0 ) { //addr2line -e binary -f -C address @@ -22984,8 +23131,8 @@ void tty_attach() { // in order to have a Windows gui application with console: // - use WinMain() then AllocConsole(), but that may require supporintg different entry points for different platforms. // - /link /SUBSYSTEM:CONSOLE and then call FreeConsole() if no console is needed, but feels naive to flash the terminal for a second. - // - /link /SUBSYSTEM:WINDOWS /entry:mainCRTStartup, then AllocConsole() as follows. Quoting @pmttavara: - // "following calls are the closest i'm aware you can get to /SUBSYSTEM:CONSOLE in a gui program + // - /link /SUBSYSTEM:WINDOWS /entry:mainCRTStartup, then AllocConsole() as follows. Quoting @pmttavara: + // "following calls are the closest i'm aware you can get to /SUBSYSTEM:CONSOLE in a gui program // while cleanly handling existing consoles (cmd.exe), pipes (ninja) and no console (VS/RemedyBG; double-clicking the game)" do_once { if( !AttachConsole(ATTACH_PARENT_PROCESS) && GetLastError() != ERROR_ACCESS_DENIED ) { bool ok = !!AllocConsole(); ASSERT( ok ); } @@ -23068,7 +23215,7 @@ void alert(const char *message) { // @todo: move to app_, besides die() #endif window_visible(true); - } +} void breakpoint() { debugbreak(); @@ -23181,9 +23328,9 @@ void app_crash() { *p = 42; } void app_beep() { - ifdef(win32, system("rundll32 user32.dll,MessageBeep"); return; ); - ifdef(linux, system("paplay /usr/share/sounds/freedesktop/stereo/message.oga"); return; ); - ifdef(osx, system("tput bel"); return; ); + ifdef(win32, app_spawn("rundll32 user32.dll,MessageBeep"); return; ); + ifdef(linux, app_spawn("paplay /usr/share/sounds/freedesktop/stereo/message.oga"); return; ); + ifdef(osx, app_spawn("tput bel"); return; ); //fallback: fputc('\x7', stdout); @@ -23238,7 +23385,7 @@ bool app_open_folder(const char *file) { #else snprintf(buf, sizeof(buf), "xdg-open \"%s\"", file); #endif - return system(buf) == 0; + return app_spawn(buf); } static @@ -23251,7 +23398,7 @@ bool app_open_file(const char *file) { #else snprintf(buf, sizeof(buf), "xdg-open \"%s\"", file); #endif - return system(buf) == 0; + return app_spawn(buf); } static @@ -23405,8 +23552,8 @@ static uint64_t nanotimer(uint64_t *out_freq) { } uint64_t time_ns() { - static uint64_t epoch = 0; - static uint64_t freq = 0; + static __thread uint64_t epoch = 0; + static __thread uint64_t freq = 0; if( !freq ) { epoch = nanotimer(&freq); } @@ -23949,50 +24096,49 @@ int (profiler_enable)(bool on) { return profiler_enabled = on; } void (ui_profiler)() { // @todo: ui_plot() - double fps = window_fps(); - profile_setstat("Render.num_fps", fps); + double fps = window_fps(); + profile_setstat("Render.num_fps", fps); - enum { COUNT = 300 }; - - static float values[COUNT] = {0}; static int offset = 0; - values[offset=(offset+1)%COUNT] = fps; + enum { COUNT = 300 }; + static float values[COUNT] = {0}; static int offset = 0; + values[offset=(offset+1)%COUNT] = fps; // draw fps-meter: 300 samples, [0..70] range each, 70px height plot ... // ... unless filtering is enabled if( !(ui_filter && ui_filter[0]) ) { nk_layout_row_dynamic(ui_ctx, 70, 1); - int index = -1; - if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) { - for( int i = 0; i < COUNT; ++i ) { - nk_flags res = nk_chart_push(ui_ctx, (float)values[i]); - if( res & NK_CHART_HOVERING ) index = i; - if( res & NK_CHART_CLICKED ) index = i; - } - nk_chart_end(ui_ctx); + int index = -1; + if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) { + for( int i = 0; i < COUNT; ++i ) { + nk_flags res = nk_chart_push(ui_ctx, (float)values[i]); + if( res & NK_CHART_HOVERING ) index = i; + if( res & NK_CHART_CLICKED ) index = i; } + nk_chart_end(ui_ctx); + } - // hightlight 60fps, 36fps and 12fps - struct nk_rect space; nk_layout_peek(&space, ui_ctx); - struct nk_command_buffer *canvas = nk_window_get_canvas(ui_ctx); - nk_stroke_line(canvas, space.x+0,space.y-60,space.x+space.w,space.y-60, 1.0, nk_rgba(0,255,0,128)); - nk_stroke_line(canvas, space.x+0,space.y-36,space.x+space.w,space.y-36, 1.0, nk_rgba(255,255,0,128)); - nk_stroke_line(canvas, space.x+0,space.y-12,space.x+space.w,space.y-12, 1.0, nk_rgba(255,0,0,128)); + // hightlight 60fps, 36fps and 12fps + struct nk_rect space; nk_layout_peek(&space, ui_ctx); + struct nk_command_buffer *canvas = nk_window_get_canvas(ui_ctx); + nk_stroke_line(canvas, space.x+0,space.y-60,space.x+space.w,space.y-60, 1.0, nk_rgba(0,255,0,128)); + nk_stroke_line(canvas, space.x+0,space.y-36,space.x+space.w,space.y-36, 1.0, nk_rgba(255,255,0,128)); + nk_stroke_line(canvas, space.x+0,space.y-12,space.x+space.w,space.y-12, 1.0, nk_rgba(255,0,0,128)); - if( index >= 0 ) { - nk_tooltipf(ui_ctx, "%.2f fps", (float)values[index]); - } + if( index >= 0 ) { + nk_tooltipf(ui_ctx, "%.2f fps", (float)values[index]); + } } - for each_map_ptr_sorted(profiler, const char *, key, struct profile_t, val ) { - if( isnan(val->stat) ) { - float v = val->avg/1000.0; - ui_slider2(*key, &v, va("%.2f ms", val->avg/1000.0)); - } else { - float v = val->stat; - ui_slider2(*key, &v, va("%.2f", val->stat)); - val->stat = 0; - } + for each_map_ptr_sorted(profiler, const char *, key, struct profile_t, val ) { + if( isnan(val->stat) ) { + float v = val->avg/1000.0; + ui_slider2(*key, &v, va("%.2f ms", val->avg/1000.0)); + } else { + float v = val->stat; + ui_slider2(*key, &v, va("%.2f", val->stat)); + val->stat = 0; + } } } #endif @@ -24401,7 +24547,7 @@ void window_drop_callback(GLFWwindow* window, int count, const char** paths) { void window_hints(unsigned flags) { #ifdef __APPLE__ //glfwInitHint( GLFW_COCOA_CHDIR_RESOURCES, GLFW_FALSE ); - glfwWindowHint( GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE ); + glfwWindowHint( GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE ); // @todo: remove silicon mac M1 hack //glfwWindowHint( GLFW_COCOA_GRAPHICS_SWITCHING, GLFW_FALSE ); //glfwWindowHint( GLFW_COCOA_MENUBAR, GLFW_FALSE ); #endif @@ -24550,6 +24696,9 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { //glfwWindowHint(GLFW_FLOATING, GLFW_TRUE); // always on top glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_TRUE); } + if( flags & WINDOW_BORDERLESS ) { + glfwWindowHint(GLFW_DECORATED, GLFW_FALSE); + } #endif // windowed float ratio = (float)winWidth / (winHeight + !winHeight); @@ -24596,10 +24745,10 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { #endif glDebugEnable(); - + // setup nuklear ui ui_ctx = nk_glfw3_init(&nk_glfw, window, NK_GLFW3_INSTALL_CALLBACKS); - + //glEnable(GL_TEXTURE_2D); // 0:disable vsync, 1:enable vsync, <0:adaptive (allow vsync when framerate is higher than syncrate and disable vsync when framerate drops below syncrate) @@ -24620,7 +24769,7 @@ bool window_create_from_handle(void *handle, float scale, unsigned flags) { PRINTF("GPU OpenGL: %d.%d\n", GLAD_VERSION_MAJOR(gl_version), GLAD_VERSION_MINOR(gl_version)); if( FLAGS_TRANSPARENT ) { // @transparent - glfwSetWindowAttrib(window, GLFW_DECORATED, GLFW_FALSE); + glfwSetWindowAttrib(window, GLFW_DECORATED, GLFW_FALSE); // @todo: is decorated an attrib or a hint? if( scale >= 1 ) glfwMaximizeWindow(window); } #endif @@ -24779,7 +24928,7 @@ int window_frame_begin() { engine_tick(); } #endif // ENABLE_RETAIL - + #if 0 // deprecated // run user-defined hooks for(int i = 0; i < 64; ++i) { @@ -24800,7 +24949,7 @@ int window_frame_begin() { timer = 0; } #else - glfwSetWindowTitle(window, title); + glfwSetWindowTitle(window, title); #endif void input_update(); @@ -24812,7 +24961,7 @@ int window_frame_begin() { void window_frame_end() { // flush batching systems that need to be rendered before frame swapping. order matters. { - font_goto(0,0); + font_goto(0,0); touch_flush(); sprite_flush(); @@ -24873,7 +25022,7 @@ void window_shutdown() { #endif - window_loop_exit(); // finish emscripten loop automatically + window_loop_exit(); // finish emscripten loop automatically } } @@ -25013,17 +25162,17 @@ void window_icon(const char *file_icon) { if( !data ) data = file_read(file_icon), len = file_size(file_icon); if( data && len ) { - image_t img = image_from_mem(data, len, IMAGE_RGBA); - if( img.w && img.h && img.pixels ) { - GLFWimage images[1]; - images[0].width = img.w; - images[0].height = img.h; - images[0].pixels = img.pixels; - glfwSetWindowIcon(window, 1, images); + image_t img = image_from_mem(data, len, IMAGE_RGBA); + if( img.w && img.h && img.pixels ) { + GLFWimage images[1]; + images[0].width = img.w; + images[0].height = img.h; + images[0].pixels = img.pixels; + glfwSetWindowIcon(window, 1, images); has_icon = 1; - return; - } + return; } + } #if 0 // is(win32) HANDLE hIcon = LoadImageA(0, file_icon, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE); if( hIcon ) { @@ -25058,7 +25207,7 @@ int window_record(const char *outfile_mp4) { vec2 window_dpi() { vec2 dpi = vec2(1,1); -#if !defined(__EMSCRIPTEN__) && !defined(__APPLE__) +#if !is(ems) && !is(osx) // @todo: remove silicon mac M1 hack glfwGetMonitorContentScale(glfwGetPrimaryMonitor(), &dpi.x, &dpi.y); #endif return dpi; @@ -25147,9 +25296,9 @@ void window_fullscreen(int enabled) { } #else if( enabled ) - EM_ASM(Module.requestFullscreen(1, 1)); + EM_ASM(Module.requestFullscreen(1, 1)); else - EM_ASM(Module.exitFullscreen()); + EM_ASM(Module.exitFullscreen()); #endif #else @@ -25159,7 +25308,7 @@ void window_fullscreen(int enabled) { /*glfwGetWindowPos(g->window, &g->window_xpos, &g->window_ypos);*/ glfwGetWindowSize(g->window, &g->width, &g->height); glfwSetWindowMonitor(g->window, glfwGetPrimaryMonitor(), 0, 0, g->width, g->height, GLFW_DONT_CARE); - } else { + } else { glfwSetWindowMonitor(g->window, NULL, 0, 0, g->width, g->height, GLFW_DONT_CARE); } #else @@ -25534,7 +25683,7 @@ void *obj_free(void *o) { FREE(o); } return 0; -} + } return o; // cannot destroy: object is still referenced } @@ -25782,21 +25931,23 @@ void test_obj_scene() { static map(int,int) oms; static thread_mutex_t *oms_lock; void *obj_setmeta(void *o, const char *key, const char *value) { + void *ret = 0; do_threadlock(oms_lock) { if(!oms) map_init_int(oms); int *q = map_find_or_add(oms, intern(va("%llu-%s",obj_id((obj*)o),key)), 0); if(!*q && !value[0]) {} else *q = intern(value); - return quark(*q), o; + quark(*q), ret = o; } - return 0; // unreachable + return ret; } const char* obj_meta(const void *o, const char *key) { + const char *ret = 0; do_threadlock(oms_lock) { if(!oms) map_init_int(oms); int *q = map_find_or_add(oms, intern(va("%llu-%s",obj_id((obj*)o),key)), 0); - return quark(*q); + ret = quark(*q); } - return 0; // unreachable + return ret; } void *obj_setname(void *o, const char *name) { @@ -25956,6 +26107,8 @@ const char *p2s(const char *type, void *p) { else if( !strcmp(type, "vec2") ) return ftoa2(*(vec2*)p); else if( !strcmp(type, "vec3") ) return ftoa3(*(vec3*)p); else if( !strcmp(type, "vec4") ) return ftoa4(*(vec4*)p); + else if( !strcmp(type, "rgb") ) return rgbatoa(*(unsigned*)p); + else if( !strcmp(type, "rgba") ) return rgbatoa(*(unsigned*)p); else if( !strcmp(type, "char*") || !strcmp(type, "string") ) return va("%s", *(char**)p); // @todo: if strchr('*') assume obj, if reflected save guid: obj_id(); return tty_color(YELLOW), printf("p2s: cannot serialize `%s` type\n", type), tty_color(0), ""; @@ -25972,6 +26125,8 @@ bool s2p(void *P, const char *type, const char *str) { else if( !strcmp(type, "vec2") ) return !!memcpy(P, (v2 = atof2(str), &v2), sizeof(v2)); else if( !strcmp(type, "vec3") ) return !!memcpy(P, (v3 = atof3(str), &v3), sizeof(v3)); else if( !strcmp(type, "vec4") ) return !!memcpy(P, (v4 = atof4(str), &v4), sizeof(v4)); + else if( !strcmp(type, "rgb") ) return !!memcpy(P, (u = atorgba(str), &u), sizeof(u)); + else if( !strcmp(type, "rgba") ) return !!memcpy(P, (u = atorgba(str), &u), sizeof(u)); else if( !strcmp(type, "uintptr_t") ) return !!memcpy(P, (p = strtol(str, NULL, 16), &p), sizeof(p)); else if( !strcmp(type, "char*") || !strcmp(type, "string") ) { char substring[128] = {0}; @@ -26224,9 +26379,9 @@ char *entity_save(entity *self) { static void entity_register() { do_once { - STRUCT(entity, uintptr_t, cflags); - obj_extend(entity, save); -} + STRUCT(entity, uintptr_t, cflags); + obj_extend(entity, save); + } } AUTORUN{ @@ -27348,7 +27503,7 @@ int engine_tick() { window_fps_lock( hz < 5 ? 5 : hz ); } else { // window_fps_lock( editor_hz ); - } + } return 0; } @@ -27695,7 +27850,7 @@ int gizmo(vec3 *pos, vec3 *rot, vec3 *sca) { // -- localization kit -static const char *kit_lang = "enUS", *kit_langs = +static const char *kit_lang = "enUS", *kit_langs = "enUS,enGB," "frFR," "esES,esAR,esMX," @@ -27710,7 +27865,7 @@ static const char *kit_lang = "enUS", *kit_langs = static map(char*,char*) kit_ids; static map(char*,char*) kit_vars; -#ifndef KIT_FMT_ID2 +#ifndef KIT_FMT_ID2 #define KIT_FMT_ID2 "%s.%s" #endif diff --git a/engine/v4k.h b/engine/v4k.h index 42e5539..6bb49ba 100644 --- a/engine/v4k.h +++ b/engine/v4k.h @@ -1273,17 +1273,17 @@ bool id_valid(uintptr_t id); #define OBJHEADER \ struct { \ ifdef(debug, const char *objname;) \ - union { \ - uintptr_t objheader; \ - struct { \ - uintptr_t objtype:8; \ - uintptr_t objsizew:8; \ - uintptr_t objrefs:8; \ - uintptr_t objheap:1; \ - uintptr_t objcomps:1; /* << can be removed? check payload ptr instead? */ \ - uintptr_t objunused:64-8-8-8-1-1-ID_INDEX_BITS-ID_COUNT_BITS; /*19*/ \ - uintptr_t objid:ID_INDEX_BITS+ID_COUNT_BITS; /*16+3*/ \ - }; \ + union { \ + uintptr_t objheader; \ + struct { \ + uintptr_t objtype:8; \ + uintptr_t objsizew:8; \ + uintptr_t objrefs:8; \ + uintptr_t objheap:1; \ + uintptr_t objcomps:1; /* << can be removed? check payload ptr instead? */ \ + uintptr_t objunused:64-8-8-8-1-1-ID_INDEX_BITS-ID_COUNT_BITS; /*19*/ \ + uintptr_t objid:ID_INDEX_BITS+ID_COUNT_BITS; /*16+3*/ \ + }; \ }; \ array(struct obj*) objchildren; \ }; @@ -1575,7 +1575,6 @@ typedef enum OBJTYPE_BUILTINS { OBJTYPE_vec2i = 9, OBJTYPE_vec3i = 10, } OBJTYPE_BUILTINS; - #line 0 @@ -2007,8 +2006,8 @@ API void *script_init_env(unsigned flags); //API void editor(); //API bool editor_active(); -API vec3 editor_pick(float mouse_x, float mouse_y); -API char* editor_path(const char *path); +API vec3 editor_pick(float mouse_x, float mouse_y); +API char* editor_path(const char *path); API float* engine_getf(const char *key); API int* engine_geti(const char *key); @@ -2788,9 +2787,9 @@ API char* ftoa3(vec3 v); API char* ftoa4(vec4 v); API float atof1(const char *s); -API vec2 atof2(const char *s); -API vec3 atof3(const char *s); -API vec4 atof4(const char *s); +API vec2 atof2(const char *s); +API vec3 atof3(const char *s); +API vec4 atof4(const char *s); API char* itoa1(int v); API char* itoa2(vec2i v); @@ -2803,14 +2802,14 @@ API vec3i atoi3(const char *s); // ---------------------------------------------------------------------------- // endianness -API int is_big(); -API int is_little(); +API int is_big(); +API int is_little(); -API uint16_t swap16( uint16_t x ); -API uint32_t swap32( uint32_t x ); -API uint64_t swap64( uint64_t x ); -API float swap32f(float n); -API double swap64f(double n); +API uint16_t swap16( uint16_t x ); +API uint32_t swap32( uint32_t x ); +API uint64_t swap64( uint64_t x ); +API float swap32f(float n); +API double swap64f(double n); API void swapf(float *a, float *b); API void swapf2(vec2 *a, vec2 *b); API void swapf3(vec3 *a, vec3 *b); @@ -2828,17 +2827,17 @@ API uint64_t big64(uint64_t n); // swap64 as big API float big32f(float n); // swap32 as big API double big64f(double n); // swap64 as big -API uint16_t* lil16p(void *p, int sz); -API uint32_t* lil32p(void *p, int sz); -API uint64_t* lil64p(void *p, int sz); -API float * lil32pf(void *p, int sz); -API double * lil64pf(void *p, int sz); +API uint16_t* lil16p(void *p, int sz); +API uint32_t* lil32p(void *p, int sz); +API uint64_t* lil64p(void *p, int sz); +API float * lil32pf(void *p, int sz); +API double * lil64pf(void *p, int sz); API uint16_t* big16p(void *p, int sz); API uint32_t* big32p(void *p, int sz); API uint64_t* big64p(void *p, int sz); API float * big32pf(void *p, int sz); -API double * big64pf(void *p, int sz); +API double * big64pf(void *p, int sz); #if is(cl) #define swap16 _byteswap_ushort @@ -2992,6 +2991,7 @@ API int saveb(unsigned char *buf, const char *format, ...); API int loadf(FILE *file, const char *format, ...); API int loadb(const unsigned char *buf, const char *format, ...); + #line 0 #line 1 "engine/split/v4k_profile.h" @@ -3133,6 +3133,9 @@ API unsigned alpha( unsigned rgba ); #define BLUE RGBX(0xB55A06,255) +API unsigned atorgba(const char *s); +API char * rgbatoa(unsigned rgba); + // ----------------------------------------------------------------------------- // images @@ -3217,6 +3220,7 @@ typedef struct texture_t { char* filename; bool transparent; unsigned fbo; // for texture recording + union { unsigned userdata, delay; }; } texture_t; API texture_t texture_compressed(const char *filename, unsigned flags); @@ -3281,8 +3285,8 @@ API void fullscreen_quad_ycbcr_flipped( texture_t texture_YCbCr[3], float gamma // texture id, position(x,y,depth sort), tint color, rotation angle API void sprite( texture_t texture, float position[3], float rotation /*0*/, uint32_t color /*~0u*/); -// texture id, rect(x,y,w,h) is [0..1] normalized, z-index, pos(xy,scale), rotation (degrees), color (rgba) -API void sprite_rect( texture_t t, vec4 rect, float zindex, vec3 pos, float tilt_deg, unsigned tint_rgba); +// texture id, rect(x,y,w,h) is [0..1] normalized, z-index, pos(xy,scale.xy), rotation (degrees), color (rgba) +API void sprite_rect( texture_t t, vec4 rect, float zindex, vec4 pos, float tilt_deg, unsigned tint_rgba); // texture id, sheet(frameNumber,X,Y) (frame in a X*Y spritesheet), position(x,y,depth sort), rotation angle, offset(x,y), scale(x,y), is_additive, tint color API void sprite_sheet( texture_t texture, float sheet[3], float position[3], float rotation, float offset[2], float scale[2], int is_additive, uint32_t rgba, int resolution_independant); @@ -3300,7 +3304,8 @@ typedef struct tileset_t { } tileset_t; API tileset_t tileset(texture_t tex, unsigned tile_w, unsigned tile_h, unsigned cols, unsigned rows); -API int tileset_ui( tileset_t t ); + +API int ui_tileset( tileset_t t ); typedef struct tilemap_t { int blank_chr; // transparent tile @@ -3335,7 +3340,8 @@ typedef struct tiled_t { API tiled_t tiled(const char *file_tmx); API void tiled_render(tiled_t tmx, vec3 pos); -API void tiled_ui(tiled_t *t); + +API void ui_tiled(tiled_t *t); // ----------------------------------------------------------------------------- // spines @@ -3346,7 +3352,8 @@ API spine_t*spine(const char *file_json, const char *file_atlas, unsigned flags) API void spine_skin(spine_t *p, unsigned skin); API void spine_render(spine_t *p, vec3 offset, unsigned flags); API void spine_animate(spine_t *p, float delta); -API void spine_ui(spine_t *p); + +API void ui_spine(spine_t *p); // ----------------------------------------------------------------------------- // cubemaps @@ -4155,13 +4162,13 @@ API void trap_on_quit(int signal); // helper util API void trap_on_abort(int signal); // helper util API void trap_on_debug(int signal); // helper util -#define PANIC(...) PANIC(va(__VA_ARGS__), strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__, __LINE__) // die() ? +#define PANIC(...) PANIC(va(""__VA_ARGS__), __FILE__, __LINE__) // die() ? API int (PANIC)(const char *error, const char *file, int line); -#define PRINTF(...) PRINTF(va(__VA_ARGS__), 1[#__VA_ARGS__] == '!' ? callstack(+48) : "", strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__, __LINE__, __FUNCTION__) +#define PRINTF(...) PRINTF(va(""__VA_ARGS__), 1[""#__VA_ARGS__] == '!' ? callstack(+48) : "", __FILE__, __LINE__, __FUNCTION__) API int (PRINTF)(const char *text, const char *stack, const char *file, int line, const char *function); -#define test(expr) test(strrchr(__FILE__, '/')?(strrchr(__FILE__, '/')+2):__FILE__,__LINE__,#expr,!!(expr)) +#define test(expr) test(__FILE__,__LINE__,#expr,!!(expr)) API int (test)(const char *file, int line, const char *expr, bool result); #if ENABLE_AUTOTESTS @@ -4335,7 +4342,7 @@ typedef struct curve_t { API curve_t curve(); API void curve_add(curve_t *c, vec3 p); API void curve_end(curve_t *c, int num_points); -API vec3 curve_eval(curve_t *c, float dt, unsigned *color); +API vec3 curve_eval(curve_t *c, float dt, unsigned *color); API void curve_destroy(curve_t *c); #line 0 @@ -4371,11 +4378,13 @@ API int ui_mat44(const char *label, float mat44[16]); API int ui_double(const char *label, double *value); API int ui_buffer(const char *label, char *buffer, int buflen); API int ui_string(const char *label, char **string); -API int ui_color3(const char *label, float *color3); //[0..255] -API int ui_color3f(const char *label, float *color3); //[0..1] -API int ui_color4(const char *label, float *color4); //[0..255] -API int ui_color4f(const char *label, float *color4); //[0..1] +API int ui_color3(const char *label, unsigned *color); //[0..255] +API int ui_color3f(const char *label, float color[3]); //[0..1] +API int ui_color4(const char *label, unsigned *color); //[0..255] +API int ui_color4f(const char *label, float color[4]); //[0..1] API int ui_unsigned(const char *label, unsigned *value); +API int ui_unsigned2(const char *label, unsigned *value); +API int ui_unsigned3(const char *label, unsigned *value); API int ui_button(const char *label); API int ui_button_transparent(const char *label); API int ui_buttons(int buttons, /*labels*/...); @@ -4494,6 +4503,7 @@ enum WINDOW_FLAGS { WINDOW_ASPECT = 0x100, // keep aspect WINDOW_FIXED = 0x200, // disable resizing WINDOW_TRANSPARENT = 0x400, + WINDOW_BORDERLESS = 0x800, WINDOW_VSYNC = 0, WINDOW_VSYNC_ADAPTIVE = 0x1000, diff --git a/tools/3rd_aseprite.h b/tools/3rd_aseprite.h new file mode 100644 index 0000000..f892b1e --- /dev/null +++ b/tools/3rd_aseprite.h @@ -0,0 +1,1348 @@ +#define ASE_TRIMS 1 //< @r-lyeh + +/* + ------------------------------------------------------------------------------ + Licensing information can be found at the end of the file. + ------------------------------------------------------------------------------ + + cute_aseprite.h - v1.02 + + To create implementation (the function definitions) + #define CUTE_ASEPRITE_IMPLEMENTATION + in *one* C/CPP file (translation unit) that includes this file + + + SUMMARY + + cute_asesprite.h is a single-file header that implements some functions to + parse .ase/.aseprite files. The entire file is parsed all at once and some + structs are filled out then handed back to you. + + + LIMITATIONS + + Only the "normal" blend mode for layers is supported. As a workaround try + using the "merge down" function in Aseprite to create a normal layer. + Supporting all blend modes would take too much code to be worth it. + + Does not support very old versions of Aseprite (with old palette chunks + 0x0004 or 0x0011). Also does not support deprecated mask chunk. + + sRGB and ICC profiles are parsed but completely ignored when blending + frames together. If you want these to be used when composing frames you + have to do this yourself. + + + SPECIAL THANKS + + Special thanks to Noel Berry for the blend code in his reference C++ + implementation (https://github.com/NoelFB/blah). + + Special thanks to Richard Mitton for the initial implementation of the + zlib inflater. + + + Revision history: + 1.00 (08/25/2020) initial release + 1.01 (08/31/2020) fixed memleaks, tag parsing bug (crash), blend bugs + 1.02 (02/05/2022) fixed icc profile parse bug, support transparent pal- + ette index, can parse 1.3 files (no tileset support) +*/ + +/* + DOCUMENTATION + + Simply load an .ase or .aseprite file from disk or from memory like so. + + ase_t* ase = cute_aseprite_load_from_file("data/player.aseprite", NULL); + + + Then access the fields directly, assuming you have your own `Animation` type. + + int w = ase->w; + int h = ase->h; + Animation anim = { 0 }; // Your custom animation data type. + + for (int i = 0; i < ase->frame_count; ++i) { + ase_frame_t* frame = ase->frames + i; + anim.add_frame(frame->duration_milliseconds, frame->pixels); + } + + + Then free it up when done. + + cute_aseprite_free(ase); + + + DATA STRUCTURES + + Aseprite files have frames, layers, and cels. A single frame is one frame of an + animation, formed by blending all the cels of an animation together. There is + one cel per layer per frame. Each cel contains its own pixel data. + + The frame's pixels are automatically assumed to have been blended by the `normal` + blend mode. A warning is emit if any other blend mode is encountered. Feel free + to update the pixels of each frame with your own implementation of blending + functions. The frame's pixels are merely provided like this for convenience. + + + BUGS AND CRASHES + + This header is quite new and it takes time to test all the parse paths. Don't be + shy about opening a GitHub issue if there's a crash! It's quite easy to update + the parser as long as you upload your .ase file that shows the bug. + + https://github.com/RandyGaul/cute_headers/issues +*/ + +#ifndef CUTE_ASEPRITE_H +#define CUTE_ASEPRITE_H + +typedef struct ase_t ase_t; + +ase_t* cute_aseprite_load_from_file(const char* path, void* mem_ctx); +ase_t* cute_aseprite_load_from_memory(const void* memory, int size, void* mem_ctx); +void cute_aseprite_free(ase_t* aseprite); + +#define CUTE_ASEPRITE_MAX_LAYERS (64) +#define CUTE_ASEPRITE_MAX_SLICES (128) +#define CUTE_ASEPRITE_MAX_PALETTE_ENTRIES (1024) +#define CUTE_ASEPRITE_MAX_TAGS (256) + +#include + +typedef struct ase_color_t ase_color_t; +typedef struct ase_frame_t ase_frame_t; +typedef struct ase_layer_t ase_layer_t; +typedef struct ase_cel_t ase_cel_t; +typedef struct ase_tag_t ase_tag_t; +typedef struct ase_slice_t ase_slice_t; +typedef struct ase_palette_entry_t ase_palette_entry_t; +typedef struct ase_palette_t ase_palette_t; +typedef struct ase_udata_t ase_udata_t; +typedef struct ase_cel_extra_chunk_t ase_cel_extra_chunk_t; +typedef struct ase_color_profile_t ase_color_profile_t; +typedef struct ase_fixed_t ase_fixed_t; +typedef struct ase_cel_extra_chunk_t ase_cel_extra_chunk_t; + +struct ase_color_t +{ + uint8_t r, g, b, a; +}; + +struct ase_fixed_t +{ + uint16_t a; + uint16_t b; +}; + +struct ase_udata_t +{ + int has_color; + ase_color_t color; + int has_text; + const char* text; +}; + +typedef enum ase_layer_flags_t +{ + ASE_LAYER_FLAGS_VISIBLE = 0x01, + ASE_LAYER_FLAGS_EDITABLE = 0x02, + ASE_LAYER_FLAGS_LOCK_MOVEMENT = 0x04, + ASE_LAYER_FLAGS_BACKGROUND = 0x08, + ASE_LAYER_FLAGS_PREFER_LINKED_CELS = 0x10, + ASE_LAYER_FLAGS_COLLAPSED = 0x20, + ASE_LAYER_FLAGS_REFERENCE = 0x40, +} ase_layer_flags_t; + +typedef enum ase_layer_type_t +{ + ASE_LAYER_TYPE_NORMAL, + ASE_LAYER_TYPE_GROUP, +} ase_layer_type_t; + +struct ase_layer_t +{ + ase_layer_flags_t flags; + ase_layer_type_t type; + const char* name; + ase_layer_t* parent; + float opacity; + ase_udata_t udata; +}; + +struct ase_cel_extra_chunk_t +{ + int precise_bounds_are_set; + ase_fixed_t precise_x; + ase_fixed_t precise_y; + ase_fixed_t w, h; +}; + +struct ase_cel_t +{ + ase_layer_t* layer; + void* pixels; + int w, h; + int x, y; + float opacity; + int is_linked; + uint16_t linked_frame_index; + int has_extra; + ase_cel_extra_chunk_t extra; + ase_udata_t udata; +}; + +struct ase_frame_t +{ + ase_t* ase; + int duration_milliseconds; + ase_color_t* pixels; + int cel_count; + ase_cel_t cels[CUTE_ASEPRITE_MAX_LAYERS]; +}; + +typedef enum ase_animation_direction_t +{ + ASE_ANIMATION_DIRECTION_FORWARDS, + ASE_ANIMATION_DIRECTION_BACKWARDS, + ASE_ANIMATION_DIRECTION_PINGPONG, +} ase_animation_direction_t; + +struct ase_tag_t +{ + int from_frame; + int to_frame; + ase_animation_direction_t loop_animation_direction; + uint8_t r, g, b; + const char* name; + ase_udata_t udata; +}; + +struct ase_slice_t +{ + const char* name; + int frame_number; + int origin_x; + int origin_y; + int w, h; + + int has_center_as_9_slice; + int center_x; + int center_y; + int center_w; + int center_h; + + int has_pivot; + int pivot_x; + int pivot_y; + + ase_udata_t udata; +}; + +struct ase_palette_entry_t +{ + ase_color_t color; + const char* color_name; +}; + +struct ase_palette_t +{ + int entry_count; + ase_palette_entry_t entries[CUTE_ASEPRITE_MAX_PALETTE_ENTRIES]; +}; + +typedef enum ase_color_profile_type_t +{ + ASE_COLOR_PROFILE_TYPE_NONE, + ASE_COLOR_PROFILE_TYPE_SRGB, + ASE_COLOR_PROFILE_TYPE_EMBEDDED_ICC, +} ase_color_profile_type_t; + +struct ase_color_profile_t +{ + ase_color_profile_type_t type; + int use_fixed_gamma; + ase_fixed_t gamma; + uint32_t icc_profile_data_length; + void* icc_profile_data; +}; + +typedef enum ase_mode_t +{ + ASE_MODE_RGBA, + ASE_MODE_GRAYSCALE, + ASE_MODE_INDEXED +} ase_mode_t; + +struct ase_t +{ + ase_mode_t mode; + int w, h; + int transparent_palette_entry_index; + int number_of_colors; + int pixel_w; + int pixel_h; + int grid_x; + int grid_y; + int grid_w; + int grid_h; + int has_color_profile; + ase_color_profile_t color_profile; + ase_palette_t palette; + + int layer_count; + ase_layer_t layers[CUTE_ASEPRITE_MAX_LAYERS]; + + int frame_count; + ase_frame_t* frames; + + int tag_count; + ase_tag_t tags[CUTE_ASEPRITE_MAX_TAGS]; + + int slice_count; + ase_slice_t slices[CUTE_ASEPRITE_MAX_SLICES]; + + void* mem_ctx; +}; + +#endif // CUTE_ASEPRITE_H + +#ifdef CUTE_ASEPRITE_IMPLEMENTATION +#ifndef CUTE_ASEPRITE_IMPLEMENTATION_ONCE +#define CUTE_ASEPRITE_IMPLEMENTATION_ONCE + +#ifndef _CRT_SECURE_NO_WARNINGS + #define _CRT_SECURE_NO_WARNINGS +#endif + +#ifndef _CRT_NONSTDC_NO_DEPRECATE + #define _CRT_NONSTDC_NO_DEPRECATE +#endif + +#if !defined(CUTE_ASEPRITE_ALLOC) + #include + #define CUTE_ASEPRITE_ALLOC(size, ctx) malloc(size) + #define CUTE_ASEPRITE_FREE(mem, ctx) free(mem) +#endif + +#if !defined(CUTE_ASEPRITE_UNUSED) + #if defined(_MSC_VER) + #define CUTE_ASEPRITE_UNUSED(x) (void)x + #else + #define CUTE_ASEPRITE_UNUSED(x) (void)(sizeof(x)) + #endif +#endif + +#if !defined(CUTE_ASEPRITE_MEMCPY) + #include // memcpy + #define CUTE_ASEPRITE_MEMCPY memcpy +#endif + +#if !defined(CUTE_ASEPRITE_MEMSET) + #include // memset + #define CUTE_ASEPRITE_MEMSET memset +#endif + +#if !defined(CUTE_ASEPRITE_ASSERT) + #include + #define CUTE_ASEPRITE_ASSERT assert +#endif + +#if !defined(CUTE_ASEPRITE_SEEK_SET) + #include // SEEK_SET + #define CUTE_ASEPRITE_SEEK_SET SEEK_SET +#endif + +#if !defined(CUTE_ASEPRITE_SEEK_END) + #include // SEEK_END + #define CUTE_ASEPRITE_SEEK_END SEEK_END +#endif + +#if !defined(CUTE_ASEPRITE_FILE) + #include // FILE + #define CUTE_ASEPRITE_FILE FILE +#endif + +#if !defined(CUTE_ASEPRITE_FOPEN) + #include // fopen + #define CUTE_ASEPRITE_FOPEN fopen +#endif + +#if !defined(CUTE_ASEPRITE_FSEEK) + #include // fseek + #define CUTE_ASEPRITE_FSEEK fseek +#endif + +#if !defined(CUTE_ASEPRITE_FREAD) + #include // fread + #define CUTE_ASEPRITE_FREAD fread +#endif + +#if !defined(CUTE_ASEPRITE_FTELL) + #include // ftell + #define CUTE_ASEPRITE_FTELL ftell +#endif + +#if !defined(CUTE_ASEPRITE_FCLOSE) + #include // fclose + #define CUTE_ASEPRITE_FCLOSE fclose +#endif + +static const char* s_error_file = NULL; // The filepath of the file being parsed. NULL if from memory. +static const char* s_error_reason; // Used to capture errors during DEFLATE parsing. + +#if !defined(CUTE_ASEPRITE_WARNING) + #define CUTE_ASEPRITE_WARNING(msg) cute_aseprite_warning(msg, __LINE__) + + static int s_error_cline; // The line in cute_aseprite.h where the error was triggered. + void cute_aseprite_warning(const char* warning, int line) + { + s_error_cline = line; + const char *error_file = s_error_file ? s_error_file : "MEMORY"; + printf("WARNING (cute_aseprite.h:%i): %s (%s)\n", s_error_cline, warning, error_file); + } +#endif + +#define CUTE_ASEPRITE_FAIL() do { goto ase_err; } while (0) +#define CUTE_ASEPRITE_CHECK(X, Y) do { if (!(X)) { s_error_reason = Y; CUTE_ASEPRITE_FAIL(); } } while (0) +#define CUTE_ASEPRITE_CALL(X) do { if (!(X)) goto ase_err; } while (0) +#define CUTE_ASEPRITE_DEFLATE_MAX_BITLEN 15 + +// DEFLATE tables from RFC 1951 +static uint8_t s_fixed_table[288 + 32] = { + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +}; // 3.2.6 +static uint8_t s_permutation_order[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; // 3.2.7 +static uint8_t s_len_extra_bits[29 + 2] = { 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0, 0,0 }; // 3.2.5 +static uint32_t s_len_base[29 + 2] = { 3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258, 0,0 }; // 3.2.5 +static uint8_t s_dist_extra_bits[30 + 2] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13, 0,0 }; // 3.2.5 +static uint32_t s_dist_base[30 + 2] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577, 0,0 }; // 3.2.5 + +typedef struct deflate_t +{ + uint64_t bits; + int count; + uint32_t* words; + int word_count; + int word_index; + int bits_left; + + int final_word_available; + uint32_t final_word; + + char* out; + char* out_end; + char* begin; + + uint32_t lit[288]; + uint32_t dst[32]; + uint32_t len[19]; + uint32_t nlit; + uint32_t ndst; + uint32_t nlen; +} deflate_t; + +static int s_would_overflow(deflate_t* s, int num_bits) +{ + return (s->bits_left + s->count) - num_bits < 0; +} + +static char* s_ptr(deflate_t* s) +{ + CUTE_ASEPRITE_ASSERT(!(s->bits_left & 7)); + return (char*)(s->words + s->word_index) - (s->count / 8); +} + +static uint64_t s_peak_bits(deflate_t* s, int num_bits_to_read) +{ + if (s->count < num_bits_to_read) + { + if (s->word_index < s->word_count) + { + uint32_t word = s->words[s->word_index++]; + s->bits |= (uint64_t)word << s->count; + s->count += 32; + CUTE_ASEPRITE_ASSERT(s->word_index <= s->word_count); + } + + else if (s->final_word_available) + { + uint32_t word = s->final_word; + s->bits |= (uint64_t)word << s->count; + s->count += s->bits_left; + s->final_word_available = 0; + } + } + + return s->bits; +} + +static uint32_t s_consume_bits(deflate_t* s, int num_bits_to_read) +{ + CUTE_ASEPRITE_ASSERT(s->count >= num_bits_to_read); + uint32_t bits = (uint32_t)(s->bits & (((uint64_t)1 << num_bits_to_read) - 1)); + s->bits >>= num_bits_to_read; + s->count -= num_bits_to_read; + s->bits_left -= num_bits_to_read; + return bits; +} + +static uint32_t s_read_bits(deflate_t* s, int num_bits_to_read) +{ + CUTE_ASEPRITE_ASSERT(num_bits_to_read <= 32); + CUTE_ASEPRITE_ASSERT(num_bits_to_read >= 0); + CUTE_ASEPRITE_ASSERT(s->bits_left > 0); + CUTE_ASEPRITE_ASSERT(s->count <= 64); + CUTE_ASEPRITE_ASSERT(!s_would_overflow(s, num_bits_to_read)); + s_peak_bits(s, num_bits_to_read); + uint32_t bits = s_consume_bits(s, num_bits_to_read); + return bits; +} + +static uint32_t s_rev16(uint32_t a) +{ + a = ((a & 0xAAAA) >> 1) | ((a & 0x5555) << 1); + a = ((a & 0xCCCC) >> 2) | ((a & 0x3333) << 2); + a = ((a & 0xF0F0) >> 4) | ((a & 0x0F0F) << 4); + a = ((a & 0xFF00) >> 8) | ((a & 0x00FF) << 8); + return a; +} + +// RFC 1951 section 3.2.2 +static uint32_t s_build(deflate_t* s, uint32_t* tree, uint8_t* lens, int sym_count) +{ + int n, codes[16], first[16], counts[16] = { 0 }; + CUTE_ASEPRITE_UNUSED(s); + + // Frequency count + for (n = 0; n < sym_count; n++) counts[lens[n]]++; + + // Distribute codes + counts[0] = codes[0] = first[0] = 0; + for (n = 1; n <= 15; ++n) + { + codes[n] = (codes[n - 1] + counts[n - 1]) << 1; + first[n] = first[n - 1] + counts[n - 1]; + } + + for (uint32_t i = 0; i < (uint32_t)sym_count; ++i) + { + uint8_t len = lens[i]; + + if (len != 0) + { + CUTE_ASEPRITE_ASSERT(len < 16); + uint32_t code = (uint32_t)codes[len]++; + uint32_t slot = (uint32_t)first[len]++; + tree[slot] = (code << (32 - (uint32_t)len)) | (i << 4) | len; + } + } + + return (uint32_t)first[15]; +} + +static int s_stored(deflate_t* s) +{ + char* p; + + // 3.2.3 + // skip any remaining bits in current partially processed byte + s_read_bits(s, s->count & 7); + + // 3.2.4 + // read LEN and NLEN, should complement each other + uint16_t LEN = (uint16_t)s_read_bits(s, 16); + uint16_t NLEN = (uint16_t)s_read_bits(s, 16); + uint16_t TILDE_NLEN = ~NLEN; + CUTE_ASEPRITE_CHECK(LEN == TILDE_NLEN, "Failed to find LEN and NLEN as complements within stored (uncompressed) stream."); + CUTE_ASEPRITE_CHECK(s->bits_left / 8 <= (int)LEN, "Stored block extends beyond end of input stream."); + p = s_ptr(s); + CUTE_ASEPRITE_MEMCPY(s->out, p, LEN); + s->out += LEN; + return 1; + +ase_err: + return 0; +} + +// 3.2.6 +static int s_fixed(deflate_t* s) +{ + s->nlit = s_build(s, s->lit, s_fixed_table, 288); + s->ndst = s_build(0, s->dst, s_fixed_table + 288, 32); + return 1; +} + +static int s_decode(deflate_t* s, uint32_t* tree, int hi) +{ + uint64_t bits = s_peak_bits(s, 16); + uint32_t search = (s_rev16((uint32_t)bits) << 16) | 0xFFFF; + int lo = 0; + while (lo < hi) + { + int guess = (lo + hi) >> 1; + if (search < tree[guess]) hi = guess; + else lo = guess + 1; + } + + uint32_t key = tree[lo - 1]; + uint32_t len = (32 - (key & 0xF)); + CUTE_ASEPRITE_ASSERT((search >> len) == (key >> len)); + + s_consume_bits(s, key & 0xF); + return (key >> 4) & 0xFFF; +} + +// 3.2.7 +static int s_dynamic(deflate_t* s) +{ + uint8_t lenlens[19] = { 0 }; + + uint32_t nlit = 257 + s_read_bits(s, 5); + uint32_t ndst = 1 + s_read_bits(s, 5); + uint32_t nlen = 4 + s_read_bits(s, 4); + + for (uint32_t i = 0 ; i < nlen; ++i) + lenlens[s_permutation_order[i]] = (uint8_t)s_read_bits(s, 3); + + // Build the tree for decoding code lengths + s->nlen = s_build(0, s->len, lenlens, 19); + uint8_t lens[288 + 32]; + + for (uint32_t n = 0; n < nlit + ndst;) + { + int sym = s_decode(s, s->len, (int)s->nlen); + switch (sym) + { + case 16: for (uint32_t i = 3 + s_read_bits(s, 2); i; --i, ++n) lens[n] = lens[n - 1]; break; + case 17: for (uint32_t i = 3 + s_read_bits(s, 3); i; --i, ++n) lens[n] = 0; break; + case 18: for (uint32_t i = 11 + s_read_bits(s, 7); i; --i, ++n) lens[n] = 0; break; + default: lens[n++] = (uint8_t)sym; break; + } + } + + s->nlit = s_build(s, s->lit, lens, (int)nlit); + s->ndst = s_build(0, s->dst, lens + nlit, (int)ndst); + return 1; +} + +// 3.2.3 +static int s_block(deflate_t* s) +{ + while (1) + { + int symbol = s_decode(s, s->lit, (int)s->nlit); + + if (symbol < 256) + { + CUTE_ASEPRITE_CHECK(s->out + 1 <= s->out_end, "Attempted to overwrite out buffer while outputting a symbol."); + *s->out = (char)symbol; + s->out += 1; + } + + else if (symbol > 256) + { + symbol -= 257; + uint32_t length = s_read_bits(s, (int)(s_len_extra_bits[symbol])) + s_len_base[symbol]; + int distance_symbol = s_decode(s, s->dst, (int)s->ndst); + uint32_t backwards_distance = s_read_bits(s, s_dist_extra_bits[distance_symbol]) + s_dist_base[distance_symbol]; + CUTE_ASEPRITE_CHECK(s->out - backwards_distance >= s->begin, "Attempted to write before out buffer (invalid backwards distance)."); + CUTE_ASEPRITE_CHECK(s->out + length <= s->out_end, "Attempted to overwrite out buffer while outputting a string."); + char* src = s->out - backwards_distance; + char* dst = s->out; + s->out += length; + + switch (backwards_distance) + { + case 1: // very common in images + CUTE_ASEPRITE_MEMSET(dst, *src, (size_t)length); + break; + default: while (length--) *dst++ = *src++; + } + } + + else break; + } + + return 1; + +ase_err: + return 0; +} + +// 3.2.3 +static int s_inflate(const void* in, int in_bytes, void* out, int out_bytes, void* mem_ctx) +{ + CUTE_ASEPRITE_UNUSED(mem_ctx); + deflate_t* s = (deflate_t*)CUTE_ASEPRITE_ALLOC(sizeof(deflate_t), mem_ctx); + s->bits = 0; + s->count = 0; + s->word_index = 0; + s->bits_left = in_bytes * 8; + + // s->words is the in-pointer rounded up to a multiple of 4 + int first_bytes = (int)((((size_t)in + 3) & (size_t)(~3)) - (size_t)in); + s->words = (uint32_t*)((char*)in + first_bytes); + s->word_count = (in_bytes - first_bytes) / 4; + int last_bytes = ((in_bytes - first_bytes) & 3); + + for (int i = 0; i < first_bytes; ++i) + s->bits |= (uint64_t)(((uint8_t*)in)[i]) << (i * 8); + + s->final_word_available = last_bytes ? 1 : 0; + s->final_word = 0; + for(int i = 0; i < last_bytes; i++) + s->final_word |= ((uint8_t*)in)[in_bytes - last_bytes + i] << (i * 8); + + s->count = first_bytes * 8; + + s->out = (char*)out; + s->out_end = s->out + out_bytes; + s->begin = (char*)out; + + int count = 0; + uint32_t bfinal; + do + { + bfinal = s_read_bits(s, 1); + uint32_t btype = s_read_bits(s, 2); + + switch (btype) + { + case 0: CUTE_ASEPRITE_CALL(s_stored(s)); break; + case 1: s_fixed(s); CUTE_ASEPRITE_CALL(s_block(s)); break; + case 2: s_dynamic(s); CUTE_ASEPRITE_CALL(s_block(s)); break; + case 3: CUTE_ASEPRITE_CHECK(0, "Detected unknown block type within input stream."); + } + + ++count; + } + while (!bfinal); + + CUTE_ASEPRITE_FREE(s, mem_ctx); + return 1; + +ase_err: + CUTE_ASEPRITE_FREE(s, mem_ctx); + return 0; +} + +typedef struct ase_state_t +{ + uint8_t* in; + uint8_t* end; + void* mem_ctx; +} ase_state_t; + +static uint8_t s_read_uint8(ase_state_t* s) +{ + CUTE_ASEPRITE_ASSERT(s->in <= s->end + sizeof(uint8_t)); + uint8_t** p = &s->in; + uint8_t value = **p; + ++(*p); + return value; +} + +static uint16_t s_read_uint16(ase_state_t* s) +{ + CUTE_ASEPRITE_ASSERT(s->in <= s->end + sizeof(uint16_t)); + uint8_t** p = &s->in; + uint16_t value; + value = (*p)[0]; + value |= (((uint16_t)((*p)[1])) << 8); + *p += 2; + return value; +} + +static ase_fixed_t s_read_fixed(ase_state_t* s) +{ + ase_fixed_t value; + value.a = s_read_uint16(s); + value.b = s_read_uint16(s); + return value; +} + +static uint32_t s_read_uint32(ase_state_t* s) +{ + CUTE_ASEPRITE_ASSERT(s->in <= s->end + sizeof(uint32_t)); + uint8_t** p = &s->in; + uint32_t value; + value = (*p)[0]; + value |= (((uint32_t)((*p)[1])) << 8); + value |= (((uint32_t)((*p)[2])) << 16); + value |= (((uint32_t)((*p)[3])) << 24); + *p += 4; + return value; +} + +#ifdef CUTE_ASPRITE_S_READ_UINT64 +// s_read_uint64() is not currently used. +static uint64_t s_read_uint64(ase_state_t* s) +{ + CUTE_ASEPRITE_ASSERT(s->in <= s->end + sizeof(uint64_t)); + uint8_t** p = &s->in; + uint64_t value; + value = (*p)[0]; + value |= (((uint64_t)((*p)[1])) << 8 ); + value |= (((uint64_t)((*p)[2])) << 16); + value |= (((uint64_t)((*p)[3])) << 24); + value |= (((uint64_t)((*p)[4])) << 32); + value |= (((uint64_t)((*p)[5])) << 40); + value |= (((uint64_t)((*p)[6])) << 48); + value |= (((uint64_t)((*p)[7])) << 56); + *p += 8; + return value; +} +#endif + +#define s_read_int16(s) (int16_t)s_read_uint16(s) +#define s_read_int32(s) (int32_t)s_read_uint32(s) + +#ifdef CUTE_ASPRITE_S_READ_BYTES +// s_read_bytes() is not currently used. +static void s_read_bytes(ase_state_t* s, uint8_t* bytes, int num_bytes) +{ + for (int i = 0; i < num_bytes; ++i) { + bytes[i] = s_read_uint8(s); + } +} +#endif + +static const char* s_read_string(ase_state_t* s) +{ + int len = (int)s_read_uint16(s); + char* bytes = (char*)CUTE_ASEPRITE_ALLOC(len + 1, s->mem_ctx); + for (int i = 0; i < len; ++i) { + bytes[i] = (char)s_read_uint8(s); + } + bytes[len] = 0; + return bytes; +} + +static void s_skip(ase_state_t* ase, int num_bytes) +{ + CUTE_ASEPRITE_ASSERT(ase->in <= ase->end + num_bytes); + ase->in += num_bytes; +} + +static char* s_fopen(const char* path, int* size, void* mem_ctx) +{ + CUTE_ASEPRITE_UNUSED(mem_ctx); + char* data = 0; + CUTE_ASEPRITE_FILE* fp = CUTE_ASEPRITE_FOPEN(path, "rb"); + int sz = 0; + + if (fp) + { + CUTE_ASEPRITE_FSEEK(fp, 0, CUTE_ASEPRITE_SEEK_END); + sz = CUTE_ASEPRITE_FTELL(fp); + CUTE_ASEPRITE_FSEEK(fp, 0, CUTE_ASEPRITE_SEEK_SET); + data = (char*)CUTE_ASEPRITE_ALLOC(sz + 1, mem_ctx); + CUTE_ASEPRITE_FREAD(data, sz, 1, fp); + data[sz] = 0; + CUTE_ASEPRITE_FCLOSE(fp); + } + + if (size) *size = sz; + return data; +} + +ase_t* cute_aseprite_load_from_file(const char* path, void* mem_ctx) +{ + s_error_file = path; + int sz; + void* file = s_fopen(path, &sz, mem_ctx); + if (!file) { + CUTE_ASEPRITE_WARNING("Unable to find map file."); + return NULL; + } + ase_t* aseprite = cute_aseprite_load_from_memory(file, sz, mem_ctx); + CUTE_ASEPRITE_FREE(file, mem_ctx); + s_error_file = NULL; + return aseprite; +} + +static int s_mul_un8(int a, int b) +{ + int t = (a * b) + 0x80; + return (((t >> 8) + t) >> 8); +} + +static ase_color_t s_blend(ase_color_t src, ase_color_t dst, uint8_t opacity) +{ + src.a = (uint8_t)s_mul_un8(src.a, opacity); + int a = src.a + dst.a - s_mul_un8(src.a, dst.a); + int r, g, b; + if (a == 0) { + r = g = b = 0; + } else { + r = dst.r + (src.r - dst.r) * src.a / a; + g = dst.g + (src.g - dst.g) * src.a / a; + b = dst.b + (src.b - dst.b) * src.a / a; + } + ase_color_t ret = { (uint8_t)r, (uint8_t)g, (uint8_t)b, (uint8_t)a }; + return ret; +} + +static int s_min(int a, int b) +{ + return a < b ? a : b; +} + +static int s_max(int a, int b) +{ + return a < b ? b : a; +} + +static ase_color_t s_color(ase_t* ase, void* src, int index) +{ + ase_color_t result; + if (ase->mode == ASE_MODE_RGBA) { + result = ((ase_color_t*)src)[index]; + } else if (ase->mode == ASE_MODE_GRAYSCALE) { + uint8_t saturation = ((uint8_t*)src)[index * 2]; + uint8_t a = ((uint8_t*)src)[index * 2 + 1]; + result.r = result.g = result.b = saturation; + result.a = a; + } else { + CUTE_ASEPRITE_ASSERT(ase->mode == ASE_MODE_INDEXED); + uint8_t palette_index = ((uint8_t*)src)[index]; + if (palette_index == ase->transparent_palette_entry_index) { + result.r = 0; + result.g = 0; + result.b = 0; + result.a = 0; + } else { + result = ase->palette.entries[palette_index].color; + } + } + return result; +} + +ase_t* cute_aseprite_load_from_memory(const void* memory, int size, void* mem_ctx) +{ + ase_t* ase = (ase_t*)CUTE_ASEPRITE_ALLOC(sizeof(ase_t), mem_ctx); + CUTE_ASEPRITE_MEMSET(ase, 0, sizeof(*ase)); + + ase_state_t state = { 0 }; + ase_state_t* s = &state; + s->in = (uint8_t*)memory; + s->end = s->in + size; + s->mem_ctx = mem_ctx; + + s_skip(s, sizeof(uint32_t)); // File size. + int magic = (int)s_read_uint16(s); + if (magic != 0xA5E0) return CUTE_ASEPRITE_FREE(ase, mem_ctx), 0; // CUTE_ASEPRITE_ASSERT(magic == 0xA5E0); //< r-lyeh: soft abort + + ase->frame_count = (int)s_read_uint16(s); + ase->w = s_read_uint16(s); + ase->h = s_read_uint16(s); + uint16_t bpp = s_read_uint16(s) / 8; + if (bpp == 4) ase->mode = ASE_MODE_RGBA; + else if (bpp == 2) ase->mode = ASE_MODE_GRAYSCALE; + else { + CUTE_ASEPRITE_ASSERT(bpp == 1); + ase->mode = ASE_MODE_INDEXED; + } + uint32_t valid_layer_opacity = s_read_uint32(s) & 1; + int speed = s_read_uint16(s); + s_skip(s, sizeof(uint32_t) * 2); // Spec says skip these bytes, as they're zero'd. + ase->transparent_palette_entry_index = s_read_uint8(s); + s_skip(s, 3); // Spec says skip these bytes. + ase->number_of_colors = (int)s_read_uint16(s); + ase->pixel_w = (int)s_read_uint8(s); + ase->pixel_h = (int)s_read_uint8(s); + ase->grid_x = (int)s_read_int16(s); + ase->grid_y = (int)s_read_int16(s); + ase->grid_w = (int)s_read_uint16(s); + ase->grid_h = (int)s_read_uint16(s); + s_skip(s, 84); // For future use (set to zero). + + ase->frames = (ase_frame_t*)CUTE_ASEPRITE_ALLOC((int)(sizeof(ase_frame_t)) * ase->frame_count, mem_ctx); + CUTE_ASEPRITE_MEMSET(ase->frames, 0, sizeof(ase_frame_t) * (size_t)ase->frame_count); + + ase_udata_t* last_udata = NULL; + int was_on_tags = 0; + int tag_index = 0; + + ase_layer_t* layer_stack[CUTE_ASEPRITE_MAX_LAYERS]; + + // Parse all chunks in the .aseprite file. + for (int i = 0; i < ase->frame_count; ++i) { + ase_frame_t* frame = ase->frames + i; + frame->ase = ase; + s_skip(s, sizeof(uint32_t)); // Frame size. + magic = (int)s_read_uint16(s); + CUTE_ASEPRITE_ASSERT(magic == 0xF1FA); + int chunk_count = (int)s_read_uint16(s); + frame->duration_milliseconds = s_read_uint16(s); + if (frame->duration_milliseconds == 0) frame->duration_milliseconds = speed; + s_skip(s, 2); // For future use (set to zero). + uint32_t new_chunk_count = s_read_uint32(s); + if (new_chunk_count) chunk_count = (int)new_chunk_count; + + for (int j = 0; j < chunk_count; ++j) { + uint32_t chunk_size = s_read_uint32(s); + uint16_t chunk_type = s_read_uint16(s); + chunk_size -= (uint32_t)(sizeof(uint32_t) + sizeof(uint16_t)); + uint8_t* chunk_start = s->in; + + switch (chunk_type) { + case 0x2004: // Layer chunk. + { + CUTE_ASEPRITE_ASSERT(ase->layer_count < CUTE_ASEPRITE_MAX_LAYERS); + ase_layer_t* layer = ase->layers + ase->layer_count++; + layer->flags = (ase_layer_flags_t)s_read_uint16(s); + layer->type = (ase_layer_type_t)s_read_uint16(s); + layer->parent = NULL; + int child_level = (int)s_read_uint16(s); + layer_stack[child_level] = layer; + if (child_level) { + layer->parent = layer_stack[child_level - 1]; + } + s_skip(s, sizeof(uint16_t)); // Default layer width in pixels (ignored). + s_skip(s, sizeof(uint16_t)); // Default layer height in pixels (ignored). + int blend_mode = (int)s_read_uint16(s); + if (blend_mode) CUTE_ASEPRITE_WARNING("Unknown blend mode encountered."); + layer->opacity = s_read_uint8(s) / 255.0f; + if (!valid_layer_opacity) layer->opacity = 1.0f; + s_skip(s, 3); // For future use (set to zero). + layer->name = s_read_string(s); + last_udata = &layer->udata; + } break; + + case 0x2005: // Cel chunk. + { + CUTE_ASEPRITE_ASSERT(frame->cel_count < CUTE_ASEPRITE_MAX_LAYERS); + ase_cel_t* cel = frame->cels + frame->cel_count++; + int layer_index = (int)s_read_uint16(s); + cel->layer = ase->layers + layer_index; + cel->x = s_read_int16(s); + cel->y = s_read_int16(s); + cel->opacity = s_read_uint8(s) / 255.0f; + int cel_type = (int)s_read_uint16(s); + s_skip(s, 7); // For future (set to zero). + switch (cel_type) { + case 0: // Raw cel. + cel->w = s_read_uint16(s); + cel->h = s_read_uint16(s); + cel->pixels = CUTE_ASEPRITE_ALLOC(cel->w * cel->h * bpp, mem_ctx); + CUTE_ASEPRITE_MEMCPY(cel->pixels, s->in, (size_t)(cel->w * cel->h * bpp)); + s_skip(s, cel->w * cel->h * bpp); + break; + + case 1: // Linked cel. + cel->is_linked = 1; + cel->linked_frame_index = s_read_uint16(s); + break; + + case 2: // Compressed image cel. + { + cel->w = s_read_uint16(s); + cel->h = s_read_uint16(s); + int zlib_byte0 = s_read_uint8(s); + int zlib_byte1 = s_read_uint8(s); + int deflate_bytes = (int)chunk_size - (int)(s->in - chunk_start); + void* pixels = s->in; + CUTE_ASEPRITE_ASSERT((zlib_byte0 & 0x0F) == 0x08); // Only zlib compression method (RFC 1950) is supported. + CUTE_ASEPRITE_ASSERT((zlib_byte0 & 0xF0) <= 0x70); // Innapropriate window size detected. + CUTE_ASEPRITE_ASSERT(!(zlib_byte1 & 0x20)); // Preset dictionary is present and not supported. + int pixels_sz = cel->w * cel->h * bpp; + void* pixels_decompressed = CUTE_ASEPRITE_ALLOC(pixels_sz, mem_ctx); + int ret = s_inflate(pixels, deflate_bytes, pixels_decompressed, pixels_sz, mem_ctx); + if (!ret) CUTE_ASEPRITE_WARNING(s_error_reason); + cel->pixels = pixels_decompressed; + s_skip(s, deflate_bytes); + } break; + } + last_udata = &cel->udata; + } break; + + case 0x2006: // Cel extra chunk. + { + ase_cel_t* cel = frame->cels + frame->cel_count; + cel->has_extra = 1; + cel->extra.precise_bounds_are_set = (int)s_read_uint32(s); + cel->extra.precise_x = s_read_fixed(s); + cel->extra.precise_y = s_read_fixed(s); + cel->extra.w = s_read_fixed(s); + cel->extra.h = s_read_fixed(s); + s_skip(s, 16); // For future use (set to zero). + } break; + + case 0x2007: // Color profile chunk. + { + ase->has_color_profile = 1; + ase->color_profile.type = (ase_color_profile_type_t)s_read_uint16(s); + ase->color_profile.use_fixed_gamma = (int)s_read_uint16(s) & 1; + ase->color_profile.gamma = s_read_fixed(s); + s_skip(s, 8); // For future use (set to zero). + if (ase->color_profile.type == ASE_COLOR_PROFILE_TYPE_EMBEDDED_ICC) { + // Use the embedded ICC profile. + ase->color_profile.icc_profile_data_length = s_read_uint32(s); + ase->color_profile.icc_profile_data = CUTE_ASEPRITE_ALLOC(ase->color_profile.icc_profile_data_length, mem_ctx); + CUTE_ASEPRITE_MEMCPY(ase->color_profile.icc_profile_data, s->in, ase->color_profile.icc_profile_data_length); + s->in += ase->color_profile.icc_profile_data_length; + } + } break; + + case 0x2018: // Tags chunk. + { + ase->tag_count = (int)s_read_uint16(s); + s_skip(s, 8); // For future (set to zero). + CUTE_ASEPRITE_ASSERT(ase->tag_count < CUTE_ASEPRITE_MAX_TAGS); + for (int k = 0; k < ase->tag_count; ++k) { + ase_tag_t tag; + tag.from_frame = (int)s_read_uint16(s); + tag.to_frame = (int)s_read_uint16(s); + tag.loop_animation_direction = (ase_animation_direction_t)s_read_uint8(s); + s_skip(s, 8); // For future (set to zero). + tag.r = s_read_uint8(s); + tag.g = s_read_uint8(s); + tag.b = s_read_uint8(s); + s_skip(s, 1); // Extra byte (zero). + tag.name = s_read_string(s); + ase->tags[k] = tag; + } + was_on_tags = 1; + } break; + + case 0x2019: // Palette chunk. + { + ase->palette.entry_count = (int)s_read_uint32(s); + CUTE_ASEPRITE_ASSERT(ase->palette.entry_count <= CUTE_ASEPRITE_MAX_PALETTE_ENTRIES); + int first_index = (int)s_read_uint32(s); + int last_index = (int)s_read_uint32(s); + s_skip(s, 8); // For future (set to zero). + for (int k = first_index; k <= last_index; ++k) { + int has_name = s_read_uint16(s); + ase_palette_entry_t entry; + entry.color.r = s_read_uint8(s); + entry.color.g = s_read_uint8(s); + entry.color.b = s_read_uint8(s); + entry.color.a = s_read_uint8(s); + if (has_name) { + entry.color_name = s_read_string(s); + } else { + entry.color_name = NULL; + } + CUTE_ASEPRITE_ASSERT(k < CUTE_ASEPRITE_MAX_PALETTE_ENTRIES); + ase->palette.entries[k] = entry; + } + } break; + + case 0x2020: // Udata chunk. + { + CUTE_ASEPRITE_ASSERT(last_udata || was_on_tags); + if (was_on_tags && !last_udata) { + CUTE_ASEPRITE_ASSERT(tag_index < ase->tag_count); + last_udata = &ase->tags[tag_index++].udata; + } + int flags = (int)s_read_uint32(s); + if (flags & 1) { + last_udata->has_text = 1; + last_udata->text = s_read_string(s); + } + if (flags & 2) { + last_udata->color.r = s_read_uint8(s); + last_udata->color.g = s_read_uint8(s); + last_udata->color.b = s_read_uint8(s); + last_udata->color.a = s_read_uint8(s); + } + last_udata = NULL; + } break; + + case 0x2022: // Slice chunk. + { + int slice_count = (int)s_read_uint32(s); + int flags = (int)s_read_uint32(s); + s_skip(s, sizeof(uint32_t)); // Reserved. + const char* name = s_read_string(s); + for (int k = 0; k < (int)slice_count; ++k) { + ase_slice_t slice = { 0 }; + slice.name = name; + slice.frame_number = (int)s_read_uint32(s); + slice.origin_x = (int)s_read_int32(s); + slice.origin_y = (int)s_read_int32(s); + slice.w = (int)s_read_uint32(s); + slice.h = (int)s_read_uint32(s); + if (flags & 1) { + // It's a 9-patches slice. + slice.has_center_as_9_slice = 1; + slice.center_x = (int)s_read_int32(s); + slice.center_y = (int)s_read_int32(s); + slice.center_w = (int)s_read_uint32(s); + slice.center_h = (int)s_read_uint32(s); + } else if (flags & 2) { + // Has pivot information. + slice.has_pivot = 1; + slice.pivot_x = (int)s_read_int32(s); + slice.pivot_y = (int)s_read_int32(s); + } + CUTE_ASEPRITE_ASSERT(ase->slice_count < CUTE_ASEPRITE_MAX_SLICES); + ase->slices[ase->slice_count++] = slice; + last_udata = &ase->slices[ase->slice_count - 1].udata; + } + } break; + + default: + s_skip(s, (int)chunk_size); + break; + } + + uint32_t size_read = (uint32_t)(s->in - chunk_start); + CUTE_ASEPRITE_ASSERT(size_read == chunk_size); + } + } + + //< @r-lyeh: if num_layers > 1, then assume last layer #0 is a background layer. hide it + #if ASE_TRIMS + if(ase->layer_count > 1) ase->layers[0].flags &= ~ASE_LAYER_FLAGS_VISIBLE; + if(0) + for( int i = 0; i < ase->layer_count; ++i ) { + int match = 0; + match = !strcmpi(ase->layers[i].name, "grid"); + match |= !strcmpi(ase->layers[i].name, "background"); + match |= !strcmpi(ase->layers[i].name, "fondo"); + if(match) ase->layers[i].flags &= ~ASE_LAYER_FLAGS_VISIBLE; + } + #endif + //< + + // Blend all cel pixels into each of their respective frames, for convenience. + for (int i = 0; i < ase->frame_count; ++i) { + ase_frame_t* frame = ase->frames + i; + frame->pixels = (ase_color_t*)CUTE_ASEPRITE_ALLOC((int)(sizeof(ase_color_t)) * ase->w * ase->h, mem_ctx); + CUTE_ASEPRITE_MEMSET(frame->pixels, 0, sizeof(ase_color_t) * (size_t)ase->w * (size_t)ase->h); + ase_color_t* dst = frame->pixels; + for (int j = 0; j < frame->cel_count; ++j) { + ase_cel_t* cel = frame->cels + j; + if (!(cel->layer->flags & ASE_LAYER_FLAGS_VISIBLE)) { + continue; + } + if (cel->layer->parent && !(cel->layer->parent->flags & ASE_LAYER_FLAGS_VISIBLE)) { + continue; + } + while (cel->is_linked) { + ase_frame_t* frame = ase->frames + cel->linked_frame_index; + int found = 0; + for (int k = 0; k < frame->cel_count; ++k) { + if (frame->cels[k].layer == cel->layer) { + cel = frame->cels + k; + found = 1; + break; + } + } + CUTE_ASEPRITE_ASSERT(found); + } + void* src = cel->pixels; + uint8_t opacity = (uint8_t)(cel->opacity * cel->layer->opacity * 255.0f); + int cx = cel->x; + int cy = cel->y; + int cw = cel->w; + int ch = cel->h; + int cl = -s_min(cx, 0); + int ct = -s_min(cy, 0); + int dl = s_max(cx, 0); + int dt = s_max(cy, 0); + int dr = s_min(ase->w, cw + cx); + int db = s_min(ase->h, ch + cy); + int aw = ase->w; + for (int dx = dl, sx = cl; dx < dr; dx++, sx++) { + for (int dy = dt, sy = ct; dy < db; dy++, sy++) { + int dst_index = aw * dy + dx; + ase_color_t src_color = s_color(ase, src, cw * sy + sx); + ase_color_t dst_color = dst[dst_index]; + ase_color_t result = s_blend(src_color, dst_color, opacity); + dst[dst_index] = result; + } + } + } + } + + ase->mem_ctx = mem_ctx; + return ase; +} + +void cute_aseprite_free(ase_t* ase) +{ + for (int i = 0; i < ase->frame_count; ++i) { + ase_frame_t* frame = ase->frames + i; + CUTE_ASEPRITE_FREE(frame->pixels, ase->mem_ctx); + for (int j = 0; j < frame->cel_count; ++j) { + ase_cel_t* cel = frame->cels + j; + CUTE_ASEPRITE_FREE(cel->pixels, ase->mem_ctx); + CUTE_ASEPRITE_FREE((void*)cel->udata.text, ase->mem_ctx); + } + } + for (int i = 0; i < ase->layer_count; ++i) { + ase_layer_t* layer = ase->layers + i; + CUTE_ASEPRITE_FREE((void*)layer->name, ase->mem_ctx); + CUTE_ASEPRITE_FREE((void*)layer->udata.text, ase->mem_ctx); + } + for (int i = 0; i < ase->tag_count; ++i) { + ase_tag_t* tag = ase->tags + i; + CUTE_ASEPRITE_FREE((void*)tag->name, ase->mem_ctx); + } + for (int i = 0; i < ase->slice_count; ++i) { + ase_slice_t* slice = ase->slices + i; + CUTE_ASEPRITE_FREE((void*)slice->udata.text, ase->mem_ctx); + } + if (ase->slice_count) { + CUTE_ASEPRITE_FREE((void*)ase->slices[0].name, ase->mem_ctx); + } + for (int i = 0; i < ase->palette.entry_count; ++i) { + CUTE_ASEPRITE_FREE((void*)ase->palette.entries[i].color_name, ase->mem_ctx); + } + CUTE_ASEPRITE_FREE(ase->color_profile.icc_profile_data, ase->mem_ctx); + CUTE_ASEPRITE_FREE(ase->frames, ase->mem_ctx); + CUTE_ASEPRITE_FREE(ase, ase->mem_ctx); +} + +#endif // CUTE_ASEPRITE_IMPLEMENTATION_ONCE +#endif // CUTE_ASEPRITE_IMPLEMENTATION + +/* + ------------------------------------------------------------------------------ + This software is available under 2 licenses - you may choose the one you like. + ------------------------------------------------------------------------------ + ALTERNATIVE A - zlib license + Copyright (c) 2017 Randy Gaul http://www.randygaul.net + This software is provided 'as-is', without any express or implied warranty. + In no event will the authors be held liable for any damages arising from + the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + ------------------------------------------------------------------------------ + ALTERNATIVE B - Public Domain (www.unlicense.org) + This is free and unencumbered software released into the public domain. + Anyone is free to copy, modify, publish, use, compile, sell, or distribute this + software, either in source code form or as a compiled binary, for any purpose, + commercial or non-commercial, and by any means. + In jurisdictions that recognize copyright laws, the author or authors of this + software dedicate any and all copyright interest in the software to the public + domain. We make this dedication for the benefit of the public at large and to + the detriment of our heirs and successors. We intend this dedication to be an + overt act of relinquishment in perpetuity of all present and future rights to + this software under copyright law. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ------------------------------------------------------------------------------ +*/ diff --git a/tools/3rd_atlasc.h b/tools/3rd_atlasc.h new file mode 100644 index 0000000..0f3824d --- /dev/null +++ b/tools/3rd_atlasc.h @@ -0,0 +1,857 @@ +// atlasc.c +// Copyright 2019 Sepehr Taghdisian (septag@github). All rights reserved. +// License: https://github.com/septag/atlasc#license-bsd-2-clause +// +// sx_math.h +// Copyright 2018 Sepehr Taghdisian (septag@github). All rights reserved. +// License: https://github.com/septag/sx#license-bsd-2-clause + +#ifndef ATLASC_HEADER +#define ATLASC_HEADER + +#define ATLASC_VERSION "1.2.3" + +#include +#include +#include + +#ifndef __cplusplus +#define ATLAS_CAST +#else +#define ATLAS_CAST(T) T +extern "C" { +#endif + +typedef union vec2 { struct { float x, y; }; float f[2]; } vec2; +typedef union vec3 { struct { float x, y, z; }; float f[3]; } vec3; +typedef union vec2i { struct { int x, y; }; int n[2]; } vec2i; +typedef union recti { struct { int xmin, ymin, xmax, ymax; }; struct { vec2i vmin, vmax; }; int f[4]; } recti; + +typedef struct atlas_flags { + int alpha_threshold; + float dist_threshold; + int max_width; + int max_height; + int border; + int pot; + int padding; + int mesh; + int max_verts_per_mesh; + float scale; +} atlas_flags; + +typedef struct atlas_image { + uint8_t* pixels; // only supports 32bpp RGBA format + int width; + int height; + char *name; +} atlas_image; + +typedef struct atlas_sprite { + uint8_t* src_image; // RGBA image buffer (32bpp) + vec2i src_size; // widthxheight + recti sprite_rect; // cropped rectangle relative to sprite's source image (pixels) + recti sheet_rect; // rectangle in final sheet (pixels) + char *name; + unsigned frame; + + // sprite-mesh data (if flag is set. see atlas_flags) + uint16_t num_tris; + int num_points; + vec2i* pts; + vec2i* uvs; + uint16_t* tris; +} atlas_sprite; + +typedef struct atlas_t { + atlas_sprite* sprites; + int num_sprites; + int* frames; + int num_frames; + atlas_image output; +} atlas_t; + +// receives input files and common arguments. returns atlas_t +// you have to free the data after use with `atlas_free` +atlas_t* atlas_loadfiles(array(char*) files, atlas_flags flags); + +// receives input image buffers and common arguments. returns atlas_t +// you have to free the data after use with `atlas_free` +atlas_t* atlas_loadimages(array(atlas_image) images, atlas_flags flags); + +// +bool atlas_save(const char *outfile, const atlas_t* atlas, atlas_flags flags); + +// frees atlas_t memory +void atlas_free(atlas_t* atlas); + +// returns the last error string +const char* atlas_last_error(); + +#ifdef __cplusplus +} +#endif +#endif // ATLASC_HEADER + +// +#ifdef ATLASC_IMPLEMENTATION +#include +#include + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// Types/Primitives + +#define vec2(x,y) (ATLAS_CAST(vec2) { (float)(x), (float)(y) }) +#define vec3(x,y,z) (ATLAS_CAST(vec3) { (float)(x), (float)(y), (float)(z) }) +#define vec2i(x,y) (ATLAS_CAST(vec2i) { (int)(x), (int)(y) }) +#define recti(x,y,X,Y) (ATLAS_CAST(recti) { (int)(x), (int)(y), (int)(X), (int)(Y) }) + +#define minf(a,b) ((a) < (b) ? (a) : (b)) +#define maxf(a,b) ((a) > (b) ? (a) : (b)) +#define clampf(a,b,c) ( (a) < (b) ? (b) : (a) > (c) ? (c) : (a)) + +static int nearest_pow2(int n) { return --n, n |= n >> 1, n |= n >> 2, n |= n >> 4, n |= n >> 8, n |= n >> 16, ++n; } // https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 +static float sx_abs(float _a) { union { float f; unsigned int ui; } u = { _a }; return u.ui &= 0x7FFFFFFF, u.f; } +static bool equalf(float _a, float _b, float _epsilon) { const float lhs = sx_abs(_a - _b), aa = sx_abs(_a), ab = sx_abs(_b), rhs = _epsilon * maxf(1.0f, maxf(aa, ab)); return lhs <= rhs; } // http://realtimecollisiondetection.net/blog/?t=89 + +static vec3 cross3(const vec3 _a, const vec3 _b) { return vec3(_a.y * _b.z - _a.z * _b.y, _a.z * _b.x - _a.x * _b.z, _a.x * _b.y - _a.y * _b.x); } + +static float dot2(const vec2 _a, const vec2 _b) { return _a.x * _b.x + _a.y * _b.y; } +static float len2(const vec2 _a) { return sqrt(dot2(_a, _a)); } +static vec2 norm2(const vec2 _a) { const float len = len2(_a); /*assert(len > 0 && "Divide by zero");*/ return vec2(_a.x / (len + !len), _a.y / (len + !len)); } +static vec2 add2(const vec2 _a, const vec2 _b) { return vec2(_a.x + _b.x, _a.y + _b.y); } +static vec2 sub2(const vec2 _a, const vec2 _b) { return vec2(_a.x - _b.x, _a.y - _b.y); } +static vec2 scale2(const vec2 _a, float _b) { return vec2(_a.x * _b, _a.y * _b); } + +static vec2i add2i(const vec2i _a, const vec2i _b) { return vec2i(_a.x + _b.x, _a.y + _b.y); } +static vec2i sub2i(const vec2i _a, const vec2i _b) { return vec2i(_a.x - _b.x, _a.y - _b.y); } +static vec2i min2i(const vec2i _a, const vec2i _b) { return vec2i(minf(_a.x, _b.x), minf(_a.y, _b.y)); } +static vec2i max2i(const vec2i _a, const vec2i _b) { return vec2i(maxf(_a.x, _b.x), maxf(_a.y, _b.y)); } + +static recti rectiwh(int _x, int _y, int _w, int _h) { return recti(_x, _y, _x + _w, _y + _h); } +static recti recti_expand(const recti rc, const vec2i expand) { return recti(rc.xmin - expand.x, rc.ymin - expand.y, rc.xmax + expand.x, rc.ymax + expand.y); } +static void recti_add_point(recti* rc, const vec2i pt) { rc->vmin = min2i(rc->vmin, pt); rc->vmax = max2i(rc->vmax, pt); } + +// ---------------------------------------------------------------------------- + +#ifndef ATLAS_REALLOC +#define ATLAS_REALLOC realloc +#endif +#ifndef ATLAS_MSIZE +#define ATLAS_MSIZE _msize +#endif +#ifndef ATLAS_CALLOC +#define ATLAS_CALLOC(n,m) memset(ATLAS_REALLOC(0, (n)*(m)), 0, (n)*(m)) +#endif +#ifndef ATLAS_FREE +#define ATLAS_FREE(ptr) ((ptr) = ATLAS_REALLOC((ptr), 0)) +#endif + +#define align_mask(_value, _mask) (((_value) + (_mask)) & ((~0) & (~(_mask)))) + +static void panic_if(int fail) { if(fail) exit(-fprintf(stderr, "out of memory!\n")); } + +static void path_unixpath(char *buf, unsigned buflen, const char *inpath) { + snprintf(buf, buflen, "%s", inpath); + while( strchr(buf, '\\') ) *strchr(buf, '\\') = '/'; +} +static void path_basename(char *buf, unsigned buflen, const char *inpath) { + const char *a = strrchr(inpath, '\\'); + const char *b = strrchr(inpath, '/'); + snprintf(buf, buflen, "%s", a > b ? a+1 : b > a ? b+1 : inpath ); +} +static bool path_isfile(const char* filepath) { + FILE *f = fopen(filepath, "rb"); + return f ? fclose(f), 1 : 0; +} + +static char g_error_str[512]; +const char* atlas_last_error() +{ + return g_error_str; +} + +static void atlas__free_sprites(atlas_sprite* sprites, int num_sprites) +{ + for (int i = 0; i < num_sprites; i++) { + if (sprites[i].src_image) { + stbi_image_free(sprites[i].src_image); + } + + if (sprites[i].tris) { + ATLAS_FREE(sprites[i].tris); + } + + if (sprites[i].pts) { + ATLAS_FREE(sprites[i].pts); + } + + if (sprites[i].uvs) { + ATLAS_FREE(sprites[i].uvs); + } + + if (sprites[i].name) { + ATLAS_FREE(sprites[i].name); + } + } + ATLAS_FREE(sprites); +} + +static void atlas__blit(uint8_t* dst, int dst_x, int dst_y, int dst_pitch, const uint8_t* src, + int src_x, int src_y, int src_w, int src_h, int src_pitch, int bpp) +{ + assert(dst); + assert(src); + + const int pixel_sz = bpp / 8; + const uint8_t* src_ptr = src + src_y * src_pitch + src_x * pixel_sz; + uint8_t* dst_ptr = dst + dst_y * dst_pitch + dst_x * pixel_sz; + for (int y = src_y; y < (src_y + src_h); y++) { + memcpy(dst_ptr, src_ptr, src_w * pixel_sz); + src_ptr += src_pitch; + dst_ptr += dst_pitch; + } +} + +static vec2 atlas__itof2(const s2o_point p) +{ + return vec2((float)p.x, (float)p.y); +} + +// modified version of: +// https://github.com/anael-seghezzi/Maratis-Tiny-C-library/blob/master/include/m_raster.h +static bool atlas__test_line(const uint8_t* buffer, int w, int h, s2o_point p0, s2o_point p1) +{ + const uint8_t* data = buffer; + + int x0 = p0.x; + int y0 = p0.y; + int x1 = p1.x; + int y1 = p1.y; + int dx = abs(x1 - x0), sx = x0 < x1 ? 1 : -1; + int dy = -abs(y1 - y0), sy = y0 < y1 ? 1 : -1; + int err = dx + dy, e2; + + while (1) { + if (x0 > -1 && y0 > -1 && x0 < w && y0 < h) { + const uint8_t* pixel = data + (y0 * w + x0); + if (*pixel) + return true; // line intersects with image data + } + + if (x0 == x1 && y0 == y1) + break; + + e2 = 2 * err; + if (e2 >= dy) { + err += dy; + x0 += sx; + } + if (e2 <= dx) { + err += dx; + y0 += sy; + } + } + + return false; +} + +// returns true if 'pts' buffer is changed +static bool atlas__offset_pt(s2o_point* pts, int num_pts, int pt_idx, float amount, int w, int h) +{ + s2o_point ipt = pts[pt_idx]; + s2o_point _ipt = ipt; + vec2 pt = atlas__itof2(ipt); + vec2 prev_pt = (pt_idx > 0) ? atlas__itof2(pts[pt_idx - 1]) : atlas__itof2(pts[num_pts - 1]); + vec2 next_pt = (pt_idx + 1) < num_pts ? atlas__itof2(pts[pt_idx + 1]) : atlas__itof2(pts[0]); + vec2 edge1 = norm2(sub2(prev_pt, pt)); + vec2 edge2 = norm2(sub2(next_pt, pt)); + + // calculate normal vector to move the point away from the polygon + vec2 n; + vec3 c = cross3(vec3(edge1.x, edge1.y, 0), vec3(edge2.x, edge2.y, 0)); + if (equalf(c.z, 0.0f, 0.00001f)) { + n = scale2(vec2(-edge1.y, edge1.x), amount); + } else { + // c.z < 0 -> point intersecting convex edges + // c.z > 0 -> point intersecting concave edges + float k = c.z < 0.0f ? -1.0f : 1.0f; + n = scale2(norm2(add2(edge1, edge2)), k * amount); + } + + pt = add2(pt, n); + ipt.x = (int)pt.x; + ipt.y = (int)pt.y; + ipt.x = clampf(ipt.x, 0, w); + ipt.y = clampf(ipt.y, 0, h); + pts[pt_idx] = ipt; + return (_ipt.x != ipt.x) || (_ipt.y != ipt.y); +} + +static void atlas__fix_outline_pts(const uint8_t* thresholded, int tw, int th, s2o_point* pts, + int num_pts) +{ + // NOTE: winding is assumed to be CW + const float offset_amount = 2.0f; + + for (int i = 0; i < num_pts; i++) { + s2o_point pt = pts[i]; + int next_i = (i + 1) < num_pts ? (i + 1) : 0; + +// assert(!thresholded[pt.y * tw + pt.x]); // point shouldn't be inside threshold + + s2o_point next_pt = pts[next_i]; + while (atlas__test_line(thresholded, tw, th, pt, next_pt)) { + if (!atlas__offset_pt(pts, num_pts, i, offset_amount, tw, th)) + break; + atlas__offset_pt(pts, num_pts, next_i, offset_amount, tw, th); + // refresh points for the new line intersection test + pt = pts[i]; + next_pt = pts[next_i]; + } + } +} + +static void atlas__make_mesh(atlas_sprite* spr, const s2o_point* pts, int pt_count, int max_verts, + const uint8_t* thresholded, int width, int height) +{ + s2o_point* temp_pts = ATLAS_CALLOC(pt_count,sizeof(s2o_point)); + panic_if(!temp_pts); + + memcpy(temp_pts, pts, sizeof(s2o_point)*pt_count); + int num_verts = pt_count; + + if (width > 1 && height > 1) { + const float delta = 0.5f; + const float threshold_start = 0.5f; + float threshold = threshold_start; + + for(;;) { + s2o_distance_based_path_simplification(temp_pts, &num_verts, threshold); + + if(num_verts <= max_verts) break; + + memcpy(temp_pts, pts, sizeof(s2o_point)*pt_count); + num_verts = pt_count; + + threshold += delta; + } + + // fix any collisions with the actual image // @r-lyeh: method below is buggy. will return dupe points + atlas__fix_outline_pts(thresholded, width, height, temp_pts, num_verts); + } + + //< @r-lyeh: remove dupes + for (int i = 0; i < num_verts - 1; i++) { + for (int j = i + 1; j < num_verts; j++) { + if( temp_pts[i].x == temp_pts[j].x && temp_pts[i].y == temp_pts[j].y ) { + temp_pts[j].x = temp_pts[num_verts - 1].x; + temp_pts[j].y = temp_pts[num_verts - 1].y; + --num_verts; + --j; + } + } + } + //< + + // triangulate + del_point2d_t* dpts = ATLAS_CALLOC(num_verts, sizeof(del_point2d_t)); + panic_if(!dpts); + + for (int i = 0; i < num_verts; i++) { + dpts[i].x = (double)temp_pts[i].x; + dpts[i].y = (double)temp_pts[i].y; + //printf("%d) %f,%f\n", i, dpts[i].x, dpts[i].y); //< @r-lyeh: debug dupe points + } + + delaunay2d_t* polys = delaunay2d_from(dpts, num_verts); + assert(polys); + tri_delaunay2d_t* tris = tri_delaunay2d_from(polys); + assert(tris); + ATLAS_FREE(dpts); + delaunay2d_release(polys); + + assert(tris->num_triangles < UINT16_MAX); + spr->tris = ATLAS_CALLOC(tris->num_triangles * 3,sizeof(uint16_t)); + spr->pts = ATLAS_CALLOC(tris->num_points, sizeof(vec2i)); + assert(spr->tris); + assert(spr->pts); + + for (unsigned int i = 0; i < tris->num_triangles; i++) { + unsigned int index = i * 3; + spr->tris[index] = (uint16_t)tris->tris[index]; + spr->tris[index + 1] = (uint16_t)tris->tris[index + 1]; + spr->tris[index + 2] = (uint16_t)tris->tris[index + 2]; + } + for (unsigned int i = 0; i < tris->num_points; i++) { + spr->pts[i] = vec2i((int)tris->points[i].x, (int)tris->points[i].y); + } + spr->num_tris = (uint16_t)tris->num_triangles; + spr->num_points = (int)tris->num_points; + + tri_delaunay2d_release(tris); + ATLAS_FREE(temp_pts); +} + +atlas_t* atlas_loadimages(array(atlas_image) images, atlas_flags flags) +{ + assert(images); + + array(int) frames = 0; + array(atlas_sprite) sprites = 0; + + for (int i = 0; i < array_count(images); i++) { + + // find is_cached + { + int found = 0, k = 0; + static array(uint64_t) cache = 0; + static array(uint64_t) index = 0; + uint64_t hash = hash_init; + hash = hash_bin(&images[i].width, sizeof(images[i].width), hash); + hash = hash_bin(&images[i].height, sizeof(images[i].height), hash); + hash = hash_bin((char*)images[i].pixels, images[i].width * images[i].height * 4, hash); + for (; k < array_count(cache); ++k) + if (cache[k] == hash) { found = 1; break; } + if (found) { + array_push(frames, index[k]); + continue; + } else { + array_push(cache, hash); + array_push(index, k); + array_push(frames, k); + } + //printf("%d) %llx\n", array_count(cache), hash); + } + + atlas_sprite zero = {0}; + atlas_sprite* spr = &zero; + if(images[i].name) spr->name = STRDUP(images[i].name); + spr->frame = i; + + spr->src_size.x = images[i].width; + spr->src_size.y = images[i].height; + assert(images[i].width > 0 && images[i].height > 0); + assert(images[i].pixels); + uint8_t* pixels = images[i].pixels; + + // rescale + if (!equalf(flags.scale, 1.0f, 0.0001f)) { + int target_w = (int)((float)spr->src_size.x * flags.scale); + int target_h = (int)((float)spr->src_size.y * flags.scale); + uint8_t* resized_pixels = ATLAS_CALLOC(1, 4 * target_w * target_h); + panic_if(!resized_pixels); + + if (!stbir_resize_uint8(pixels, spr->src_size.x, spr->src_size.y, 4 * spr->src_size.x, + resized_pixels, target_w, target_h, 4 * target_w, 4)) { + snprintf(g_error_str, sizeof(g_error_str), "could not resize image: #%d", i + 1); + atlas__free_sprites(sprites, array_count(sprites)); + return NULL; + } + + stbi_image_free(pixels); + + spr->src_size.x = target_w; + spr->src_size.y = target_h; + pixels = resized_pixels; + } + + spr->src_image = pixels; + + recti sprite_rect = {0}; + int pt_count = 0; + s2o_point* pts = 0; + uint8_t* alpha = s2o_rgba_to_alpha(spr->src_image, spr->src_size.x, spr->src_size.y); + uint8_t* thresholded = s2o_alpha_to_thresholded(alpha, spr->src_size.x, spr->src_size.y, flags.alpha_threshold); + free(alpha); + + if (flags.mesh && spr->src_size.x > 1 && spr->src_size.y > 1) { + uint8_t* dilate_thres = s2o_dilate_thresholded(thresholded, spr->src_size.x, spr->src_size.y); + + uint8_t* outlined = s2o_thresholded_to_outlined(dilate_thres, spr->src_size.x, spr->src_size.y); + free(dilate_thres); + + pts = s2o_extract_outline_path(outlined, spr->src_size.x, spr->src_size.y, &pt_count, NULL); + free(outlined); + + //< @r-lyeh @fixme: many sprites will return extremely low num of points (like 8) even if the sprite is complex enough. + //< this will lead to produce here a nearly zero sprite_rect, then sheet_rect, then eventually an empty frame at end of pipeline. + + // calculate cropped rectangle + sprite_rect = recti(INT_MAX, INT_MAX, INT_MIN, INT_MIN); + for (int k = 0; k < pt_count; k++) { + recti_add_point(&sprite_rect, vec2i(pts[k].x, pts[k].y)); + } + sprite_rect.xmax++; + sprite_rect.ymax++; + } else { + sprite_rect = recti(0, 0, spr->src_size.x, spr->src_size.y); + pt_count = 4; + pts = ATLAS_CALLOC(pt_count, sizeof(s2o_point)); + pts[0] = (s2o_point) {0, 0}; + pts[1] = (s2o_point) {spr->src_size.x, 0}; + pts[2] = (s2o_point) {spr->src_size.x, spr->src_size.y}; + pts[3] = (s2o_point) {0, spr->src_size.y}; + } + + // generate mesh if set in arguments + if (flags.mesh) { + atlas__make_mesh(spr, pts, pt_count, flags.max_verts_per_mesh, thresholded, + spr->src_size.x, spr->src_size.y); + } + + ATLAS_FREE(pts); + free(thresholded); + spr->sprite_rect = sprite_rect; + + array_push(sprites, *spr); + } + + int num_sprites = array_count(sprites); + + // pack sprites into a sheet + stbrp_context rp_ctx = {0}; + int max_width = flags.max_width; + int max_height = flags.max_height; + int num_rp_nodes = max_width + max_height; + stbrp_rect* rp_rects = ATLAS_CALLOC(num_sprites, sizeof(stbrp_rect)); + stbrp_node* rp_nodes = ATLAS_CALLOC(num_rp_nodes, sizeof(stbrp_node)); + panic_if(!rp_rects || !rp_nodes); + + for (int i = 0; i < num_sprites; i++) { + recti rc = sprites[i].sprite_rect; + int rc_resize = (flags.border + flags.padding) * 2; + rp_rects[i].w = (rc.xmax - rc.xmin) + rc_resize; + rp_rects[i].h = (rc.ymax - rc.ymin) + rc_resize; + } + stbrp_init_target(&rp_ctx, max_width, max_height, rp_nodes, num_rp_nodes); + recti final_rect = recti(INT_MAX, INT_MAX, INT_MIN, INT_MIN); + if (stbrp_pack_rects(&rp_ctx, rp_rects, num_sprites)) { + for (int i = 0; i < num_sprites; i++) { + atlas_sprite* spr = &sprites[i]; + recti sheet_rect = rectiwh(rp_rects[i].x, rp_rects[i].y, rp_rects[i].w, rp_rects[i].h); + + // calculate the total size of output image + recti_add_point(&final_rect, sheet_rect.vmin); + recti_add_point(&final_rect, sheet_rect.vmax); + + // shrink back rect and set the real sheet_rect for the sprite + spr->sheet_rect = + recti_expand(sheet_rect, vec2i(-flags.border, -flags.border)); + } + } + + int dst_w = final_rect.xmax - final_rect.xmin; + int dst_h = final_rect.ymax - final_rect.ymin; + // make output size divide by 4 by default + dst_w = align_mask(dst_w, 3); + dst_h = align_mask(dst_h, 3); + + if (flags.pot) { + dst_w = nearest_pow2(dst_w); + dst_h = nearest_pow2(dst_h); + } + + uint8_t* dst = ATLAS_CALLOC(1, dst_w * dst_h * 4); + panic_if(!dst); + + // calculate UVs for sprite meshes + if (flags.mesh) { + for (int i = 0; i < num_sprites; i++) { + atlas_sprite* spr = &sprites[i]; + // if sprite has mesh, calculate UVs for it + if (spr->pts && spr->num_points) { + const int padding = flags.padding; + vec2i offset = spr->sprite_rect.vmin; + vec2i sheet_pos = + vec2i(spr->sheet_rect.xmin + padding, spr->sheet_rect.ymin + padding); + vec2i* uvs = ATLAS_CALLOC(spr->num_points, sizeof(vec2i)); + assert(uvs); + for (int pi = 0; pi < spr->num_points; pi++) { + vec2i pt = spr->pts[pi]; + uvs[pi] = add2i(sub2i(pt, offset), sheet_pos); + } + + spr->uvs = uvs; + } // generate uvs + } + } + + for (int i = 0; i < num_sprites; i++) { + const atlas_sprite* spr = &sprites[i]; + + // calculate UVs for sprite-meshes + + // remove padding and blit from src_image to dst + recti dstrc = recti_expand(spr->sheet_rect, vec2i(-flags.padding, -flags.padding)); + recti srcrc = spr->sprite_rect; + atlas__blit(dst, dstrc.xmin, dstrc.ymin, dst_w * 4, spr->src_image, srcrc.xmin, srcrc.ymin, + srcrc.xmax - srcrc.xmin, srcrc.ymax - srcrc.ymin, spr->src_size.x * 4, 32); + } + + atlas_t* atlas = ATLAS_CALLOC(1, sizeof(atlas_t)); + panic_if(!atlas); + + atlas->output.pixels = dst; + atlas->output.width = dst_w; + atlas->output.height = dst_h; + atlas->sprites = sprites; + atlas->num_sprites = num_sprites; + atlas->frames = frames; + atlas->num_frames = array_count(frames); + + ATLAS_FREE(rp_nodes); + ATLAS_FREE(rp_rects); + + return atlas; +} + +static char *atlas_anims = 0; +static char *atlas_current_anim = 0; + +atlas_t* atlas_loadfiles(array(char*) files, atlas_flags flags) +{ + assert(files); + + array(atlas_image) images = 0; + + for (int i = 0; i < array_count(files); ++i) { + if (!path_isfile(files[i])) { + snprintf(g_error_str, sizeof(g_error_str), "input image not found: %s", files[i]); + goto err_cleanup; + } + + int comp; + atlas_image img = {0}; + img.pixels = stbi_load(files[i], &img.width, &img.height, &comp, 4); + +#ifdef CUTE_ASEPRITE_H + if (!img.pixels) { + bool loaded = 0; + + for( ase_t* ase = cute_aseprite_load_from_file(files[i], NULL); ase; cute_aseprite_free(ase), ase = 0, loaded = 1) { + ase_tag_t *parent = ase->tags + 0; + + //< abc/def/ghi.aseprite -> ghi + if( atlas_current_anim ) *atlas_current_anim = '\0'; + strcatf(&atlas_current_anim, files[i]); + path_basename(atlas_current_anim, strlen(atlas_current_anim), files[i]); + if( strrchr(atlas_current_anim, '.')) *strrchr(atlas_current_anim, '.') = '\0'; + trimspace(atlas_current_anim); + //< + + for( int f = 0; f < ase->frame_count; ++f) { + ase_frame_t *frame = ase->frames + f; + + // find rect + int x = INT_MAX, y = INT_MAX, x2 = INT_MIN, y2 = INT_MIN; + for( int c = 0; c < frame->cel_count; ++c ) { + ase_cel_t *cel = frame->cels + c; + if( cel->layer->flags & ASE_LAYER_FLAGS_VISIBLE ) { + if( cel->x < x ) x = cel->x; + if( cel->h < y ) y = cel->y; + if( (cel->x + cel->w) > x2 ) x2 = cel->x + cel->w; + if( (cel->y + cel->h) > y2 ) y2 = cel->y + cel->h; + } + } + if (x2 <= 0 || y2 <= 0) { // submit empty frame + img.width = 1; + img.height = 1; + img.pixels = calloc(1, 1*1*4); + array_push(images, img); + continue; + } + int cx = x; + int cy = y; + int cw = x2-x; + int ch = y2-y; + int tn = 4; + int tw = ase->w; + + // find clip + img.width = cw; + img.height = ch; + img.pixels = calloc(1, cw*ch*4); // @fixme: because of a stbi_image_free() within rescale section, this should be allocated with stbi allocator + for( unsigned y = 0; y < ch; ++y ) + memcpy((char *)img.pixels + (0+(0+y)*cw)*tn, (char*)frame->pixels + (cx+(cy+y)*tw)*tn, cw*tn); + array_push(images, img); + } + + static int count = 0; + if(!atlas_anims) strcatf(&atlas_anims, "[anims]\n"); + + for( int t = 0; t < ase->tag_count; ++t) { + ase_tag_t *tag = ase->tags + t; + + // find full name + int range[2] = {tag->from_frame, tag->to_frame}; + char name[256] = {0}; + for( int tt = 0; tt < ase->tag_count; ++tt ) { + ase_tag_t *ttag = ase->tags + tt; + if( range[0] >= ttag->from_frame && range[1] <= ttag->to_frame ) + strcat(name, "."), strcat(name, ttag->name); + } + trimspace(name); + + char *sep = ""; + strcatf(&atlas_anims, "[%d].name=%s.%s\n", count, atlas_current_anim, name+1); + strcatf(&atlas_anims, "[%d].frames=", count); + if( tag->loop_animation_direction != ASE_ANIMATION_DIRECTION_BACKWARDS) + for( int from = tag->from_frame; from <= tag->to_frame; ++from ) { + strcatf(&atlas_anims, "%s%d,%d", sep, from, ase->frames[from].duration_milliseconds), sep = ","; + } + sep = ""; + if( tag->loop_animation_direction != ASE_ANIMATION_DIRECTION_FORWARDS) + for( int from = tag->from_frame; from <= tag->to_frame; ++from ) { + strcatf(&atlas_anims, "%s%d,%d", sep, from, ase->frames[from].duration_milliseconds), sep = ","; + } + strcatf(&atlas_anims,"\n"); + + ++count; + } + } + + if( loaded ) continue; + } +#endif + + if (!img.pixels) { + continue; //< @r-lyeh: keep going + + snprintf(g_error_str, sizeof(g_error_str), "invalid image format: %s", files[i]); + goto err_cleanup; + } + + if( !img.name ) img.name = STRDUP(files[i]); + + array_push(images, img); + } + + atlas_t* atlas = atlas_loadimages(images, flags); + return atlas; + +err_cleanup: + for (int i = 0; i < array_count(images); i++) { + if (images[i].pixels) { + stbi_image_free(images[i].pixels); + } + if (images[i].name) { + ATLAS_FREE(images[i].name); + } + } + array_free(images); + return NULL; +} + +void atlas_free(atlas_t* atlas) +{ + assert(atlas); + + if (atlas->sprites) + atlas__free_sprites(atlas->sprites, atlas->num_sprites); + if (atlas->frames) + ATLAS_FREE(atlas->frames); + if (atlas->output.pixels) + ATLAS_FREE(atlas->output.pixels); + ATLAS_FREE(atlas); +} + + + +// custom write function +typedef struct { + int offset; + void *buffer; +} stbi_mem_context; +static void stbi_write_mem(void *context, void *data, int size) { + stbi_mem_context *ctx = (stbi_mem_context*)context; + memcpy( ctx->buffer, data, size ); + ctx->offset += size; +} + +bool atlas_save(const char *outfile, const atlas_t *atlas, atlas_flags flags) +{ + assert(outfile); + + const bool is_file = strcmp(outfile, "stdout"); + const atlas_sprite* sprites = atlas->sprites; + const int* frames = atlas->frames; + const int num_frames = atlas->num_frames; + const int num_sprites = atlas->num_sprites; + const uint8_t* dst = atlas->output.pixels; + const int dst_w = atlas->output.width; + const int dst_h = atlas->output.height; + + char image_filepath[256]; + char image_filename[256]; + snprintf(image_filepath, sizeof(image_filepath), "%s.png", outfile); + path_basename(image_filename, sizeof(image_filename), image_filepath); + + stbi_write_png_compression_level = 5; // 8 + + // write texture, if needed + if( is_file ) { + if (!stbi_write_png(image_filepath, dst_w, dst_h, 4, dst, dst_w * 4)) { + fprintf(stderr, "could not write image file `%s`\n", image_filepath); + return false; + } + } + + // write atlas description into .ini file + FILE *writer = is_file ? fopen(outfile, "wt") : stdout; + if (!writer) { + fprintf(stderr, "could not write ini file `%s`\n", outfile); + return false; + } + + fprintf(writer, "[atlas]\n"); + + if (is_file) { + fprintf(writer, "file=%s\n", image_filepath); + } else { + stbi_mem_context ctx = {0, ATLAS_CALLOC(1, dst_w*dst_h*4+256) }; + int result = stbi_write_png_to_func(stbi_write_mem, &ctx, dst_w, dst_h, 4, dst, dst_w*4); + char *b64 = base64_encode(ctx.buffer, ctx.offset); + fprintf(writer, "bitmap=%s\n", b64); // %d:%s\n", ctx.offset, b64); + ATLAS_FREE(ctx.buffer); + free(b64); + } + + fprintf(writer, "size=%d,%d\n", dst_w, dst_h); + fprintf(writer, "border=%d,%d\n", flags.border, flags.border); + fprintf(writer, "padding=%d,%d\n", flags.padding, flags.padding); + + for( int i = 0; i < num_frames; i++ ) { + const atlas_sprite* spr = sprites + frames[i]; + + char name[256]; + path_unixpath(name, sizeof(name), spr->name ? spr->name : ""); + + if(name[0]) + fprintf(writer, "[%d].name=%s\n", i, name); + fprintf(writer, "[%d].frame=%u\n", i, spr->frame); + //fprintf(writer, "[%d].size=%d,%d\n", i, spr->src_size.n[0], spr->src_size.n[1]); + //fprintf(writer, "[%d].rect=%u,%u,%u,%u\n", i, spr->sprite_rect.f[0], spr->sprite_rect.f[1], spr->sprite_rect.f[2], spr->sprite_rect.f[3]); + fprintf(writer, "[%d].sheet=%u,%u,%u,%u\n", i, spr->sheet_rect.f[0], spr->sheet_rect.f[1], spr->sheet_rect.f[2], spr->sheet_rect.f[3]); + if( spr->num_tris ) { + fprintf(writer, "[%d].indices=", i); // %d:", i, (int)spr->num_tris * 3); + for( int j = 0, jend = (int)spr->num_tris * 3; j < jend; ++j ) + fprintf(writer, "%u%s", spr->tris[j], j < (jend-1) ? "," : "\n"); + + fprintf(writer, "[%d].coords=", i); // %d:", i, spr->num_points*2); + for( int j = 0, jend = spr->num_points; j < jend; j++ ) + fprintf(writer, "%.f,%.f%s", (double)spr->pts[j].x, (double)spr->pts[j].y, j < (jend-1) ? ",":"\n" ); + + fprintf(writer, "[%d].uvs=", i); // %d:", i, spr->num_points*2); + for( int j = 0, jend = spr->num_points; j < jend; j++ ) + fprintf(writer, "%.f,%.f%s", (double)spr->uvs[j].x, (double)spr->uvs[j].y, j < (jend-1) ? ",":"\n" ); + } + } + + if( atlas_anims ) fprintf(writer, "%s\n", atlas_anims); + + if(writer != stdout) fclose(writer); + return true; +} + +#endif // ATLASC_IMPLEMENTATION diff --git a/tools/ase2ini.c b/tools/ase2ini.c new file mode 100644 index 0000000..c71f2ee --- /dev/null +++ b/tools/ase2ini.c @@ -0,0 +1,224 @@ +// ase2spr, based on atlas code by Sepehr Taghdisian (BSD2 licensed) +// - rlyeh, public domain. + +#include +#include +#include +#include +#include + +#ifndef _MSC_VER +#include +#define strcmpi strcasecmp +#else +#define strcmpi stricmp +#endif + +#define ATLAS_REALLOC vrealloc +#define ATLAS_MSIZE vlen + +void* vrealloc( void* p, size_t sz ) { + if( !sz ) { + if( p ) { + size_t *ret = (size_t*)p - 2; + ret[0] = 0; + ret[1] = 0; + realloc( ret, 0 ); + } + return 0; + } else { + size_t *ret; + if( !p ) { + ret = (size_t*)realloc( 0, sizeof(size_t) * 2 + sz ); + ret[0] = sz; + ret[1] = 0; + } else { + ret = (size_t*)p - 2; + size_t osz = ret[0]; + size_t ocp = ret[1]; + if( sz <= (osz + ocp) ) { + ret[0] = sz; + ret[1] = ocp - (sz - osz); + } else { + ret = (size_t*)realloc( ret, sizeof(size_t) * 2 + sz * 1.75 ); + ret[0] = sz; + ret[1] = (size_t)(sz * 1.75) - sz; + } + } + return &ret[2]; + } +} +size_t vlen( void* p ) { + return p ? 0[ (size_t*)p - 2 ] : 0; +} + +char *STRDUP(const char *s) { size_t n = strlen(s)+1; return ((char*)memcpy(ATLAS_REALLOC(0,n), s, n)); } ///- + +static unsigned array_c; +#define array(t) t* +#define array_push(arr, v) ( array_c = array_count(arr), array_c[(arr) = vrealloc((arr), (array_c + 1) * sizeof(0[arr]))] = (v) ) +#define array_pop(arr) ( (arr) ? (arr) = vrealloc((arr), (array_count(arr)-1) * sizeof(0[arr])) : (0) ) +#define array_count(arr) (int)( (arr) ? vlen(arr) / sizeof(0[arr]) : sizeof(0[arr]) - sizeof(0[arr]) ) +#define array_free(arr) ( (arr) ? (vrealloc(arr, 0), 1) : 0 ) + +const uint64_t hash_init = 14695981039346656037ULL; +uint64_t hash_bin(const void* ptr, unsigned len, uint64_t hash ) { + for( unsigned char *str = (unsigned char *)ptr; len--; ) + hash = ( (unsigned char)*str++ ^ hash ) * 0x100000001b3ULL; + return hash; +} + +char *trimspace(char *str) { + for( char *s = str; *s; ++s ) + if(*s <= 32) memmove(s, s+1, strlen(s)); + return str; +} + +char* strcatf(char **src_, const char *fmt, ...) { + static char buf[1024] = {0}; + va_list va; + va_start(va, fmt); + int buflen = vsnprintf( buf, sizeof(buf), fmt, va ); + va_end(va); + + char *src = src_ ? *src_ : 0; + int srclen = (src ? strlen(src) : 0); + src = (char*)vrealloc(src, srclen + buflen + 1 ); + memcpy(src + srclen, buf, buflen + 1 ); + if(src_) *src_ = src; + return src; +} + + +#ifdef __TINYC__ +#define STBI_NO_SIMD +#endif + +#define STB_IMAGE_IMPLEMENTATION +#include "3rd_stb_image.h" + +#define STB_IMAGE_WRITE_IMPLEMENTATION +#include "3rd_stb_image_write.h" + +#define STB_IMAGE_RESIZE_IMPLEMENTATION +#include "3rd_stb_image_resize.h" + +#define STB_RECT_PACK_IMPLEMENTATION +#include "3rd_stb_rect_pack.h" + +#define S2O_IMPLEMENTATION +#include "3rd_sproutline.h" + +#define DELAUNAY_C +#include "3rd_delaunay.h" + +#define CUTE_ASEPRITE_IMPLEMENTATION +#include "3rd_aseprite.h" + +#define DIR_C +#include "3rd_archive.h" + +#define BASE64_C +#include "3rd_base64.h" + +#define ATLASC_IMPLEMENTATION +#include "3rd_atlasc.h" + + +int main(int argc, char* argv[]) { + const char *help = + " [flags] -o outfile [folder or file...]\n\n" + "-h Show help\n" + "-V Show version\n" + "-o Output file (defaults: stdout)\n" + "-W Maximum output image width (default:1024)\n" + "-H Maximum output image height (default:1024)\n" + "-B Border size for each sprite (default:2)\n" + "-2 Make output image size power-of-two\n" + "-P Set padding for each sprite (default:1)\n" + "-m Make sprite meshes\n" + "-M Set maximum vertices for each generated sprite mesh (default:25)\n" + "-A Alpha threshold for cropping [1..255] (default:20)\n" + "-s Set scale for individual images (default:1.0)\n\n" + ; + + atlas_flags flags = { + .alpha_threshold = 20, + .max_width = 2048, + .max_height = 2048, + .border = 2, + .padding = 1, + .max_verts_per_mesh = 25, + .scale = 1.0 + }; + array(char*) files = 0; + char *outfile = 0; + + for( int i = 1; i < argc; ++i) { + const char *arg = argv[i]; + if( arg[0] != '-' ) { + assert(array_count(files) == 0); + if( path_isfile(arg) ) + array_push(files, STRDUP(arg)); + else + for( dir *d = dir_open(arg, "r"); d; dir_close(d), d = 0) { + for( int i = 0, end = dir_count(d); i < end; ++i ) { + if( path_isfile(dir_name(d, i))) + array_push(files, STRDUP(dir_name(d, i))); + } + } + assert(array_count(files) == 1); + } + else + switch( arg[1] ) { + case 'V': exit(-printf("%s\nUsing atlasc v" ATLASC_VERSION "\n", argv[0])); + case '2': flags.pot = 1; break; + case 'm': flags.mesh = 1; break; + case '?': + case 'h': exit(-printf("%s%s", argv[0], help)); + case 'o': outfile = argv[++i]; break; + case 'A': flags.alpha_threshold = atoi(argv[++i]); break; + case 'W': flags.max_width = atoi(argv[++i]); break; + case 'H': flags.max_height = atoi(argv[++i]); break; + case 'B': flags.border = atoi(argv[++i]); break; + case 'P': flags.padding = atoi(argv[++i]); break; + case 'M': flags.max_verts_per_mesh = atoi(argv[++i]); break; + case 's': flags.scale = atof(argv[++i]); break; + default: exit(-printf("Unknown argument: %s\n", arg)); + } + } + + if( flags.scale < 0.0001f ) { + printf("%s%s", argv[0], help); + return(-puts("invalid `scale` parameter")); + } + + if( !files ) { + printf("%s%s", argv[0], help); + return(-puts("no input file(s)")); + } + + if( !outfile ) outfile = "stdout"; + + char *error = g_error_str; + + atlas_t* atlas = atlas_loadfiles(files, flags); + if ( atlas ) { + bool r = atlas_save(outfile, atlas, flags); + if( r ) { + // fprintf(stderr, "Written: %d->%d\n", flags.num_files, !!r); + error = 0; + } + atlas_free(atlas); + } + + for( int i = 0; i < array_count(files); ++i) + free(files[i]); + array_free(files); + + return error ? fprintf(stderr, "%s\n", error), -1 : 0; +} + +// cl ase2ini.c -I ..\engine\split /DNDEBUG /O2 /Ox /MT +// tcc ase2ini.c -I ..\engine\split -DNDEBUG +// cc ase2ini.c -I ../engine/split -lm -O3 -oase2ini.linux diff --git a/tools/ase2ini.exe b/tools/ase2ini.exe new file mode 100644 index 0000000000000000000000000000000000000000..12421f56630402d272f7dc39366ec0c281ac5393 GIT binary patch literal 352768 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

-bkUV6;MW!tLD3JT^fsdH7@WNk>_<8VFQ?7#d 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 literal 0 HcmV?d00001 diff --git a/tools/cook.c b/tools/cook.c index 6ebfa4b..c6449e7 100644 --- a/tools/cook.c +++ b/tools/cook.c @@ -1,7 +1,6 @@ -#define V4K_IMPLEMENTATION #define COOK_ON_DEMAND 0 #define COOK_FROM_TERMINAL 1 -#include "joint/v4k.h" +#include "v4k.c" int main(int argc, const char **argv) { double timer = time_ss(); @@ -34,3 +33,4 @@ int main(int argc, const char **argv) { // cl cook.c -I..\engine /openmp /Os /Ox /O2 /Oy /MT /DNDEBUG /GL /GF /Gw /arch:AVX2 /link /OPT:ICF /LTCG // cc -ObjC cook.c -I../engine -o cook.osx -framework Cocoa -framework IOKit -framework audiotoolbox -O3 // cc cook.c -I../engine -o cook.linux -lm -lpthread -ldl -lX11 -O3 +// del cook.o & del cook.obj & del cook.lib & del cook.exp diff --git a/tools/cook.exe b/tools/cook.exe index fc373e5cc6daeaa084e54203592fa33e9c25cafa..32777aaea5e49a5d425e0aab0df2d3216b6910ac 100644 GIT binary patch delta 153079 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

vU`#sAG+5cB# zuG^_MxpMdx3hn{n8RL6kbe(QSVUqE}79@K&;h*byIVlCS!02bla}fg;PDN4p9C+ec zcJ=s9_^7)<7rX_gdbJnciz<8ik^u>X{zldSAAk$?aumbMOC}qeSR;!A4?K!wV79}J z+#7k4IHmBCm)SECClelhMYl>jd~!eg26l8c@LMFUt6pVq`)B%p3JJ>p%zIps9Fh9q z9S5{8fWLZ;!l?BIXdh%BK>RBB9&+J3;NHKmXT&$bwavP31h^|`M;P2NSeh3Ym66ugJcb&-U?IGk@%BvT&rIDcvy&}<%(bpk~qQ>#&^O4 zN7z9v=KBCR@ofepJ_Wj0$pZaX1m8naiIZ^9J36BnI29$6AQi4O;RWz@B=K9|)olzk z;v~Z|@q`OMJj$RZybIocj7<(-1~c9bc9T13RT4B^bbVY?0lFAjsXN~WJ z4T`I?oZK2jF2x zxGKlDz`U?Xht$hEVfT>0@Vuj`XSMm{c@6h45W z@#QdXxvreBe-1A*mpE|UZL}7?#EnV3oq|~qRw7w5VT19){5u$=6jlH~M6wC>z_0>c z=?GYZWN-<43yDLX!t6DA1%x*g)6ImZ!bx}0|8i=TifKpE62ehyb*LN}LbggGFaugLlilm#i!0NjhBgBDjHGTu5bQ%2ze|C>v z0}K8ZN#aK6qMM`u;hQL)_^t4&Qk`isw2{QAg2$0`K?l6&J~n0Im%^7&4!#L4y`QwR z-0VIvrKpGxPQrs_tQkJ;0XCaWe1>m<^M9>Jcs5KZ*A*2`c`!V9fgwEn1YJn{qH5kT z|D@h@lVJ;z({th9kW};}yx;van;!|v;H}$PSaFM~F$==0pAA=iM5=@*kaIalyaqNK z6x{sa0wfi(;Ga+eaa!RhFZa>oU|z%CV`y71j_MgIuZi!Xxf&WqsACIO4>?M%3q~sRNiZgSnNP4|?FTp%H2< zz6kd5PY@lW1m*D!cp|(S72z}BwM-fl5Dz<1o~!^oiwf}a47xmO-ov3;C=Zb* z5nt$*=fAhGAe5)DuXC=YLl7s^v0;)U{5hWH?j zm**?y7%xvd6dBKLC;$Gl2XUvOdo@2LtwO&-`N)H|pmiu09Y(uR06l|hP$gP}mZ5Lj z_-zDzhCV?bqNC__v>)w8FCFD4Dda^v(bH%vdiW?m!rhBmhidr^s~T-ZkDyqkiwS_h)5& zJX@w#ie;^vceL(k-=QP4dpbQ`9s*OCHG)iQYW=l=+UDBU+V62RA%Ls9nHrab=CROO|J)+Sli1&2TCg!;p;a%3HJI z`nziLYKv-1?7>-Cx7%+o%8DLaU)NaIT-RRLRo7eRtdFUWuTQQ|tGDX&>Pza&>#OSP z>l^FsdMoQcBe_c`LY3QF7iUek(=xNJk5r{>&kp;c%q))`$jbVAvhp);19d3fUcOyL z^;2Wl*XfP&#(3kr@!n)_iZ{)h;kCRjZ;`jeTk0+MR(h+v z^Fe@!`+9v*&m}+SdT#SihW!^^KhvrJ literal 5925888 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

    b|4N31UZaOB~yf>5@%5QmYAiw>H#cAF6 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 z zy!VddF`n+|YsJIGba2}q-A^~D#cD@buHPtViJSBU^?7ZNrfpe}2?8|{RE}HSGKiBt z3NN-XB2?Ptbk|whaQ{eVfdz;LvW1?E|K}6*xbnXX7YTSUlY^r2xs>@Q-&%cy%Ut8gucAEWNXh3E3AH1hF->phUx;J(_?KQjjNFFO_rRNCex$${Pw&nLZMu(xcjglLcg2@kH{fCgE9Yi{4oVeYfS_X> zq%6Yuv>?(fCM%Ag!C5VZr`@vIX^?!M^*me1=;Y@wqV=4atMn0nUWadSQ8N#G_YE$R zMwxfZqXza7d>r^WzwkZSvk|;BcL?jm2DxDyXjq%9w^^$kD;%0|9gGg%=k(!c-e}%) zz12uu|E?t`l$>vT9miT7EfcE=1n4nOcEWT~X<*OA4tp-NpF2TqDqutGy3|gdC}hWw z5mB*(7wo!W7|8?#4E@S4kcp#e?d(DD^SG8sbEW0>ho9uQ%zj@ZyA$JowZRh=qu&!!NwW3D#HnuGLunp zlrhNviawf!PVpFZTJf|`sI!&}-MtDQ&6%rO(OE{mZ6zMyNJ`5O66(J;6f&21*<94v zg4V)2`SFivwYs8Ze(Ns1qxddqOC+X*5_utC%}zz^k4&HBylG?zY5=#!H|NG%x221W z^iRCLk=(`GO|=x}pOEUF`PTwfCIgJv*2rxLFb);_nlomMUz-u3T<=SjFgZ^OjO?@I zYuV2$SvV?e_wXa+d+gU*szO#mOIbLtHFS{GEUrhaXUtghcB!PogEaXxG7pI56zj52 zz;xJ~`pbHjI4ok$5{FrgHSYHE1-$ABS%w2xmS8txKlD^#wc}J}5d#)2&6c2V#dTNw zp}T{C@`UM1!np`{D9hpwChlu+2fWJXJeEnVfm4WM3xJL-<4U;o?BN;v(s`31GB04j zI2Y%^2ij(P0U}+9TUa;h*a+Kf0nh$pu2tg%RzhF1@w(_h{DH}a_8v4-;+Bzlj}N<- z9V`R;Bps#XkdZTaI4&Sb^ExhLXW1w1GDaP?J}}J-a|71ptznB=@z{+=VB|PY#LH^m zYU7zV7T(x(_>5ZR{v3Zoa3fWG$QOLlFfKeJ5cyIp$%)|B(6r!_D}sL)4X+4p<}3WX zAr|FZ99gtc#mu!^_gWH~?E4#l8JPz+UdLHTKeyrCBBMTf`p?T z$+7SH0vofUitD<>)WY92Ol@Azl6`@@@2zX6a8X;P3J#*X0_On%H@a@C4he{8#}c%-X)q3*lL9je;hBd6iL!c}-D7z$W>f zwJ^(e$p?^JwWS_0HQI{9#Foq7#$qPh3qGV=L1DNf_~+ z1Q|6eqZb97wIFCM4On*xdH86J@3H%wrJ~Y1dy+f;5lj5tD`icgG`n}htSBYknI6L^ znAgS-&<)*z2{{T~+Q77$z28gpOVZ|SUQ^J`t3QXbm{4chtlB^#zR`3kYf-5X?0fQb z4rqH9%P9tZy9IiNxKG$IHqg)6#w0qBxwL0*$82>tCVghh{+e+P_O|x1mJ{NTXrRZR zAb)0eDybX++ZogJKV{3kOd z$~M`Fbpp)_$AO;ZJ2Aqv>o_rUdobV08aOjk_k|tiiOfD-N2o!u@3r<>IPH4()8ir_ zwX?t0j)g)UA{dvme^u&Fys$=V95HeyfMb0hT8Yag^?@-R_q}x@o}5$+7nRvt#u#~z z%rt%`K_pLtMBR|q!R{BZ*HzDbY&`n3Y2#G44Jni}q>>}58%JuOye!(^?vewsz+T9A zjTz{`F5iK!l#2L3 zHXJ^3Ot1GPj4##u)z14HqC-RR69wC74}6m9$bB^8@wm)5+$AD45(9_6Z!Meb%7m<$ z^g0>3)Be#jpLKC!834Rv_Y-W<6N_d9snvg>Eh2>%E|b_qCU4f5y}pcZ_4)$+qpdhG zG(B-z$r*~F$zd%IS=X0photMvWM$tjLHd&7QT}2gez4k@Xt)wLkVI<61U_zc5f*kK zK#L@2vh+lfmku|tDU>BT2o9 z2*!S2TWt|NuEvGV2!h`ua4*E~kN9P=4gOSuLkJ5`i-1>{oJ(5R^TZW;o`2GHq#FPl6%E2*g9a7Gl1N3WO#jD{_7v-4AN5Sv) zT%BTSd9E(U4)C0jlQq?IaZXIA7Pas-FRh(R^}1AGKk|FR9QSXFp1`Hhflr|V>#19L zs>|P9Tg;=l)trC<;U^0TD0Gkju|Df1QDAbZg-rs(C1sHF?BY?i#gMY$Q%FhGo-BtD z)B-)G&wvNpXD$<5Cl2q^GcHv)J=^*iJ?kD@4Cg><>b+?9S<|xQJSUYjVqI5?xEHdn zgSzOU^pEL=y2>TJ_4gCWvtM2h*PQsG{SG+E4p~c61&ke1(hG%7=*G?XZ=jeL6!rTo zi=+|xzYWGJK}~s_#*_b1G0ABr!T}7PC=+J3ewQ5E4?AX!aJWJ}z_EJq{(!YNeVW$? zg$W2BFE<@w@giZ8>gRjY|H_~E-fdB!Hc^gidmV~~2f5>u7MLz#caL z*qr#@cm38@gDq^J^DYx}O<{Z=_~3y!3v0Nfbp?Ew^QfRsR4i48?<>F4P=n&cu0%JS zU4hRVq}bx*M!*0+ZXQ}i?$%Ui9(GfdRx@#BNRXY@C`QLFaIXK`Z2OQ*&V#iP5@mnu zDOkp(nR%ENH7v@v=p9;gre@lW7~Fk}{%AfiUfw`jy|gr7b@`fqs*6U1s97P>2A`Y| zjM_3JM5Zi80L9pFoU;qJ+?CXsVufK@T!4EU>NY=>_0j1k++2&L6oV45pFFS`3bT#?(E?mQmQB3`QLYH1g`xk4zvbYZZ_(>~a>v;E;!rYv8(k%r*XmTT;NPzEo@nI>l1>uC zL({Cy9Gm5o495V&NW>TLl9TDuTwbp$&E@CvlVv{*Bpxw|irC56QzFDoUeWdvDo5?u zNPcj8HOIcicguh~b5$pf9xamuFxD1o(d^G+2U8-Np&ib2++>nM67ffAhMvkxRb=n~ zHhCu4Y)pXbc@_5e4TD>4zm3#KF;Y^sh02Gh-*Dy}1=iOYBs#<+NAQS8Nq^9s^1Pv( zUL3H_ETsi@^kLy)T*#udzuO&r!fJE(ydg|*CY%mNcx5$AG2}5sQZ`J?nnN#F31NE- zv=9y0xZTA@-(wkMlq7|?7u=tomBGXp>`VR#-CR2AVa$uhJ`t`)txwrG0Jch_gg z{TV|>V~Pn(GAn%T{`6Pe72ba64|MxWP>=7iX9VbI|7X#}(3Y)p%A}rG62aub7EMeB z-gw5g`{}=TsrS7~eQ$El_hO?)J!3$2W=LNY*n(FJY^&{`@M+&5t5ee&*I%c=h`A8k zmM$H{zII|wtySUf^45%g;yUy_HLcPUf3ynO zr!lc0{YgrVDa*7r*r)Oq#I8QOOtGu56Czi8T>IX9kO>Wq!R;z9&TzX{uC(tiF8I@r zPtL)T;HVb6@gbe=G=wdK4_CMEX8EEVJfG3NFXbEzx9_=Lo@*21T8*t$Yww%Q0@v;3 zYF4Jo`(s1+;C2trO4jJytD z5|1oSyO>x7njlh=HVmr*L_!S-_+r?a5XKMBw?S4+Ffl|5bi+g zFV-wC@uJu2oe&uHa&x*hmeahZTE5JwbMxo?gy2LiLCcuYiBgIAa4mLyw zI=8$MgFHSUrUJHvkuw#rUN=VhaH0ewxMWUZ4JAZ{l8>1t5kw0D)}Hhcqs|Y^VNEB$ z)c5$j0Rfb$3K_v|}JA zHU_v4#13=lKh!dbh#P@@h%yXR_W?_%3O)GCsIbIFJ!CCvhwAk4VdC^!{kKgj4BqA+ z;AbOmx{|~1u$-I)-vAl;2E{;1Q`S$7O@Tgh7R_y;hLG=Zzq(1>Oq*{|xCrJ%NueUE zGrkHnuG|n@{(m(POI;n0#Eb}X(`06oGK4;^0#z1+|=tyFIMHryoHhZAG zP>;e!&MVWHz7}e^l3{h|g_iO3_DGFtb*LpovdyMwfwjWll4pptW$a+NF>+hJu5O0p zfT-7kPyVJ8EGxMM=dnV=h=$w{6Xs(T@XLBnw*ZsXX)H_}501V~sjgzbZ&0WhBrDcB zDikY@ZRc8;t(KTL=UTW@`B@MP@G&T1HhY?3>aou>pF&fMP!>VS zqpKk;(Dp0k-#wYucd_M1j-pi@C>tF?4QoALHnwXu~h&HH^d&j)-p9q?gz-(}??-{VsX zDVkT8_hu-sxqO!fMjHg6i{WupChf1N&RS;w3`d*QmHw(Ui6;9Vb0$_ukU{JOl9`KR zLj#6QvbHw`NR}s+c~1#$ar>s9?&}tBBog@Syj3g)l>uvgz-ognmw@+!0_@JazG}7a z7AIKZMrAbNk7DPT^3ma{eX&ymRZC}=6YiQUGUJ57c398z3IB-BaNb&n(b{=G*w^jf zv8*^Y(%JRiz&$-eL69022~rxX3qLbJvka8kt8kP%n`Eh2)jIoDfU@r@M=BR4VY8}+)efKCl`WHBd=U;a z@%tk}iGI{o7|g$634eLQU-+a-@g@9434gIE@&`f`1Ef>1_=Ez!CnlAK)l1H68OZ^ z>MBtl{>pQTiB`74Md{+8@9}ZPqb3za4`WZ+qS)1Rb4IL%bIj+#^)EkNgu zO?q094}q#xb87=tOXiMYH)gm+{QAxe|%5w9N)xb{)TYdW^`Pb zR{AiZoVA3)DiAheu0OszcTQ3G%C<^{bI@&a=c&Q4B$60gEL1y;2l_=XBh8L!Kba}N zU#dYJEm%`Z{nk?7;#_7Xzio4FD6b=|d3jrq%X$)$pF+6H!JbsUf6@<>H}4AN(Wl8w zcB?rJBqo>9n~|-7#Q5?ax3;)*wa1t%V9F-`9aPyU0oV~6hK1v021sT0t&YtIEmoqG znuDL$OTNj-)Qq~r{VrQkHswFYXo=iZF#a68gqu}EdC`#U86psW(Z62@WIjrM($R0Jtz9(8V zSJM+Ur7HVyO|kV#)y37bSrKbc$tPe8Tsp=oS~xyAxHXg<+-XN}q>0P?4m|2!nttB; zTh;l2*{9Sg)zDfCN?h4d8MN{jMDixo+f{hw^zcGGyd?d%(5P#QqcLlr|1Xj=tG-h` z`z+rR7nfQu%0sEGHfrD(k6+lq?5(vQ$7RL39JE#kRg%tr;SQMGiuB5=YXY;+^gZ#N zQtNM4dx+0T;^wV>1N7FT&Reifz4fB~fZl3PuM$EluLUkWL%7kTsDXK!X;tSs^jt%Q zyQq~FNmkn?b9TG^I~vrWZV@Fx9gyP6C|O7ctDrN>@0ACN4KVd8(i7#adXA_W*A#v) ztr^qjX+i~Kj>x!1jxw&1)pCs#B9hp*U#5}<>7o^j8bKZY$HL|!`&E)hqLN2UJqcnV z7?nCU!7vq9z*HEFt-Pc7Gio6xiu1*C(D0C!p=0={K2jkm2bmLOheVcIh>ktS0Ubw& zh;s2V6PVk-xpqJFe*=RhI;2A0a_@oqaCC z81%Ny8;0pT?>f0Xbyg>0yXm)jG$CBo5gil1K9DnKbg(K^J^QNyHxeJzRgDj9jJU%l zv$nE~#Y)4bHe1mqu2Q~gi5;i^bhyYd(ztL)mX-cM7U?`&v z?|hkOae#y|RQHSWalIHOS#8N&;>OKMMYyWf@B3k!NwE?EId%Q?@?kXGHG@vbbt zs7b2+4#Z(l)kyKlF0LTNYroEUlEN>fY{>%5rYf*eO^)2jMmnNuUu0J21fb~@LSJ2BCv$geYfrF zHc#fm+yIase6AAa&~JcmG3v(%+I72GmpuDclZJqoN#b;Ez(0bGC%PFp3H)sD=nFj0 z8h^cCnO?JHI|l-1OPh%#Vs{3bs|QC<307_H)u-pYJ{jYOI&>8s(!1`QQ92f*A2uPf z;myoxO+OomF@r3p6#?r7K3$!fj%!}8?Wi8?mP*u%_pH6XW zVtw6}+rVU{;Lhk8<9jT6YSBZCuN$d>WucN;A3Z%W_c#CzB=$=R9v8Cy5lLQsr}(6A zP~@m0E5JWvMe#kxX$+St#hupKdGMJq8_f8-SFpbf`*ts_3{>4%9+}miX?fJ#VZKF@ zbFJmHPM7LOMNt87RlH`zdPjx%k1AmZG7+CMXkWS68F7kgJGS^-O*Jq&8`kq-CRA34QtkdpT*2@s0Jh+ zUOfgB9bP?RH3m6ry@SqHhvc?o(QWo{R5Hn0w1q{5QZa$5Eq-6^-`Pti#BddC-^7?h z;rMc7>@7SoT0;-{ZmELN%S>k|xt=yK_(Iaa_zTk$wZqbrtQQ1=Ibr1NYbjd%XH7T| zubNUls{j}%YNFQ2QF+w@@-^TW1+CZ!#J89V)Jx(0s9uTw;rNRGhq*V8kE^)yzFTg| zma$FCi$H*b1qcwB2_lBXLM&>l+q#WgSS$`Ef#3uXX2{||w{3Qtmav+eo|s88!_4HF zkYOev!;=RG5-@>)t^WftrG{;KZnZh0e_=lSF1gVl9wuT!T^ zojT{#smiAF>zu3C=%Dy_cCErf*|jRpW-i0590@uc%Ha#5_e3IBek*AFlH=D;eF%?&E~ZQ{y@s7aX1*9W^2p!V@tUb=Pz>UNZ3-#LbsX6v9O9 zO7kD>-Op+R-{{xLplXBguKz3G_C%)XWJvmfG*_9fWHFN353U=6i`tqcx}SAI_lMNk zQ8x4Nj^k!d>?ph7Pz^KMv=&09b-~K(I!Mglx>O=RhJfG}3uxRf1NU}NR+y^PFz6a-Hn;Tp_0XZM3Tcl;2Yp#d!$+cG^dM6XZ z)6W)+taXxNcXm(YyU%;}?OoFPOhmCOMF_L{56Td8S9@dL+69!2feUuW*+~k^CfGUv z4R|cc5{vr8IXJ}OVOL|Pnui{8d6C}e0H^z4x^(gUwSYiktM8Mb8%6czJV(PbkjDJb zz9~+0tvczQV!L-$<`I)nk-i8UmKoAuhcSBq*bdsN*%0oESJ0Ihn+YS%nVOzrkW}t1 zz<}90vxB}USf13${Tom+MvXa>TtY9=hzral=~9Od?xSW^QXA>aK`#T|2Sg>)IurwS5lX|=bfXxgR43`kD9Of z8BBe{$<3_KG*+Z9Oy)8|WDerq;Tu2I8Z%C39B%?n&UEcSvNL}j8ha-u4c$Y<$hp#0 znsDn03Yh6@*5o_@G4v;=L`^y59_Qi}YBc|!w5W5#`K9M`5NoG59d-m82Gcb%9GAIv zY6#W2n=lrA7-zgFSH0GUA_faMqQ_w2yXOx%rJHp>*UUYF>2<-Zf8aG@3{seJquyR# z$*d4ME!5a)EY*y%Ei%o1XmkmX=VPSe@+Vv?v;bpakeDB8B1#3K^_oiKBHK)*CULIT z)IR6&pWpu5=J8H{9$QlTna4B!R637IjJEePk6)j;&v}$jfX|pm#Gb|zMlyGcriu-K z%l_xSra@_5KVLepAmmo>+j5U!b>LF3E}*M+$I4h;UU98Ht@*;#w*CVzi@il0<&+}y z{$M~vUAqhgdbxJ4HxtB6TtD_KBksL$$ERkVm0?!{me`2uK(G*+;jDQ z=4IC>rStM@?ECjKFTeQ4KIi4j5Ul^nyc{}U=4D?r<@r&&{wA8T)W^jKzq_9?Zy#y6 z6`!W`=%&QJY06*D+vk|S0X6!cjQQ*l8r0r#@pZX~EaKwi0|M@8f4KN5-eLBJiv|hV z+WnnD7M^?H<0%L3`V4%8Pl4PAh60E_+4ms+kbDTgm)*c>$pr88l<*1car>wH}Zm`g5Rd>H4u2`UU=LnjzO`A>l6&hI!)k>52IJ zq4%x|dXFNYxoTk;W)&#iWPkQ;3+!uxP4@3gHre+k?6U6g1DhWCo5P&ZUm^d_^_>#v zb8Iox&e(;s>s~WwpU`iHNbVc@g(o;z3qH*b=HRgE&zOS)=+pnBIe3${3gp|8WixC0 znuFc=;m^eL$=})!p07Ey6wgn7eF&s=&M4(?e&y^F(wm`T`-ZgfQ?WaYM;!LI(bl_t z+WJ*A();AsZaboMJo3?4f;qd7=j&hD=Xi$y?c;fzrnPP}Z_o9YYlHX3t0Je`vxEKF zE>dyJOSQUX2vo8=pLrCxfQDb|vC3_(kztd+B&SBR(>RNvbFloAA%VR~&g%6(ZNw97 z+#Q)evu>|&4Ia6$3QAtz@twV5wuXbkJN)%}hXL{iZ~NZ^yZY)S23WtJ*tZHJ+|#Uu9c@O!%KwtV?LYpD1n3;=FP49pj+0MU(*NUYEAC< zEZUntusd2CUG!R+d&`F$88PL+awCQgyGxSk7ZA|!pN9zKaHvZ!tHwS3ZYWZ z>VeO1ylz-(98g=VI4j;`-`Ys7e~H=Li)G_X&MnuCOplP9@7(^;DqxZa>Jjh+U``Ep zmu{0ld9g$TMUSTlL!e$MlS&)i;}-Kkcz(NUsQw#S8Ssah&On*Q8VX3E-I4^ z%YWXoL1Sz956S~wD@>WjXjt{IDh*2(PoCl=7kgE#kljT> z6i%X$)oZ`~jQ*_m9^;wZ|JJmvi2tvvEWt%Zsw|Di6FjW1$JRFZdY z(@so+DLU892q8G3oiB%*onZ>O8w#dz@8w1tV_>72h%d{P{{}>1RBd-+2fe(_{T3}e z8+YI2ky#m#A+)_aI{BHn`%!$dY~gOaGa1e&!&94f2zJ~LK(*!MZp4{F>#LX-fkvmZ zk>p&nrQ*p8Cm&0(2cF{SeNbn2Sl5mjYX!t z9(6x##HViR1T-K4;9WiUZZGn`JbBk(|AB1?VV@;r%TDQ`#QF12CA)B4dGR)mFoP=0 z?eXWmkJ(524^iZSL{i+?%@Y~aK%pcz?m*aBV|o#fkN_Gt(@u4#%ZN+&I|EEfRW>dD zkmYtYx85y6gT1w)AFI6!Hm!d3f)~v~oyXtv>r(u^sBU5ZNlxwu=B}KK)Q>)i9r@#` zklS3zQ5tJOrr2by;ubyAw-BNSy)q4Yp~HoaSxS+6SFnW|z>O1P$8rwS z`keQzt56h-5r)64&lTT6v$U&!mYZ2f2cXb&4@u#ZNN1)JfpFN}h1Q%7G=Pen{f$(a zI}-~$jo;SAF3q{byO0#%TJp58D z3>DBfoxO+|W^!-rL@Csc@@h`fjW5GdOgA{YoCh@^FPDEW-t>IrmSd2^5{bIFh9Bq+ z!Yre}mK1Y-41Q$sDv`6@bq=&tRbun%peCQQ4AOUJI}pCEN1C1@v2jpDlLl4x!IFF=)ORNw#7 zO?)Er1VnCIqG^>blbTCaY@TDW29dL0WOGf?ss-raOW&U@GN1rLByr_7~S zO}vl|#rV_W`cjB z2~Hnuz#0QxjWu1YX&`dTOISZhCpVAhAEMcdnX;S^Nyxc13UcZak1%TSDj{AGNsV5N z{+8-6;58bIOnSh)Dwp?ujy)U)6+;2B2z*lfXtQ(|jy2vw8F5MeP&&=|!qyeoB_Y?A z+F_@6nO;jV7C~PyGXa0{kW7PcvgJftd$Yq~DHu?}xQIR!b#+b8;$Hf?%Dw7h(qobO zS2B%EQpLAVIWN>dI+~edUQ_OFKM$KzX#)@@z_84gi~!vNC||2Hkb5qEB+;bfklh{U z{reREpsV}A_8i1(qsGBwVV;WJPKI zFG0g>?RA9%2oua}027Tz6P-7`$EAUnn{dcWt*HZyH0HV`Yi5?*uIaW2n6(VdYG*n+ z)^;tWfl*xV-(n1R5n(|TWg#OGmNp3KiQf1st2{TWTgIf9n6@Ha_mj5hrXvSahdY>e z(0cilb^XKLZt)zE2c{p{)Emj%MxJE${)PO=E?_(xV7K-IYW zTI7qClh0zEe6ksxd>*2mGjT(ZHEg3hePY&Z@^0^vjM#>(t8-Y^Z8m>(jH310Y{s#n zBeEHBr|MDGFiI*X=6i`NrrXJ^gLL;gOALeTEOF-&=}u>{9Y|-eU|na{3@90_q13j_ zL;ss@h33D>Sxq~U><6=55+m^D7p0C0N*y|+lvdqag;gh_>{?wL02%Hs(tsPyfKwwf zcd7TlW;3|6%u8aw3+R@LfX|_4+;M|q+BIj|1!LJ)v>hxI*+=&lUnE?exe3BJptUzZ zKlf}e31>oyHn4)%X`c+{DXrK z(==o6um{5mP(nkCx|m%5KnE07IO=@%JD9U}qdJ5A^5)hCbsV9tnvrVkcjIeFn=jx< z<{lR72vq4*Azte`+vc#U?K=0Db%F`I?3>`k6{BLA4V>1-X1Z>-)ndEUnItYu9WfGrkd;{ zP`T=jYY$G04%3;Dyr_ced!B3N4MA`v6AiC;vJsWhqq_lrgJ4ZP4Vuvg@09VjbE#9c zY@YJ2gaRq_g!ch}*ZP#7;lO;E8yyAnO1rg4fWHh*B%ZW%I#AF#HCwDvnm_K5V@IVf^kk-U-=wbDm+F-r!w9 zHGi#v_dQ=U!myERy5<2YZai9n6$}Ck2rdOmhY7Z&bAFEvQ!pOf&pc*C5A#oPa!Ukg z$P~Kch4n^v?67ef3-7(@j!&Ug1Zl!I`s{7zD8#4Mfj+Nq-8H!AG4;ooi+^7PZa}-+K-i*1{iNEGHBj zwT+a~-0#C+SYD)hs7Lpo#V-Z3XwAmCY6o4vlXUOEFGGEiMviiq7;#t23H{}nOS#*v zw?MNk4*zEBsdb5aERg^I(eE$M+DE^4@2hbsVhq5GgFb}9nY$J-ekO9|+7@#<)adNp zmPA9G#}a<1E7HKOX1B9dm1q$TG%*o&+=>Gy1*fW4ArgTz}e`$^U4Df-kTYktRSrmI@aBsZ8zZsgI^%w3bOYu8TBjf$eGMNs1sDypaNU{-ERCp*`l*cwh;?0d=)FJ z0UPuPh8UXY=F78W`L8q0@@)bdxYF*n{g6ZNQXOtNXAQ_D}O*^ z8Tq`GEjj_^HnJ3rn=s%;7XbxKUKN1^e+$ zH;)?*PI!${wmG~%oc@RPA!Re(f} z1GqNvqV6T*1RJ@m;NzM(PTGky2VBm+c3=y>HYnE)KY34J)uhjUMd*@UtkGTs+`_kW~I1Pw& z_EEw}EgvHg%RVO7Ms9#dC$sl@gn62&ANO`W+z91l&o8$Eo9Fe1aZv;MDhF2MNW<9J zu_4-Q++65(!c_UXI87*F4X2h5BF}5;>xi`Wby$`IR>Pb8JM0G^p|9NFjk5ATWiLM1 zy|^25%-GiK#of`Smm;_RmgL;LU9qY6YE+TVvGmk&e_|nn-R6tH-pXySs^S%a$d7u& z@~H3OtHO_S+UF|m19_gA+i1&@~lCuf_3-05Cn~XGPNlR6}l_cJA0wr!v=I)&fW(!Bk zd6hR3&D;q4jKiL|m80Zx;t0J1C+)(HTa4)(Xs3|hspS=lD{f zIySe6BBEN`#A|L7C2C|sa!y&<_jPKCg?Gl9KEB#z4&C^VvrEK30^noZ_?-{QAdCXB zUibT&asdA%NQGEZ9I6QZ2gCr81M1} z3|%u6(%k~Wqz^Fuit_&rLgqVGu zryH+qPJfBNPWmMNwx_xE9mT>=`XUfzqk5MTgWug+wmr|2KVL!Dz@S8vVYR4=S59 zgp7=3BALSjyn|1`A7dCi;jOe-?kjScc~Ac4jMyZ9G#ekckm9P|ZJ%9SMU1%J zj=%R}J-T_%k6HIg{59F1<@^-K{rAUzjuYAH60namU>|M3KAeea?w_Q;DpILK$K6y) z6Er9g|LaAnp?Qaa6{Zs?3>Q$NTUv}n$rf<2pKHQCX0_R*PWBEyOG9zZ)|2~z7)*`o7@MYQ-YS~GInv2yM3uY~CaB^;J)_=g z=8ma8m~^I(L;ePDE;T#u{mLsJLXXOuV#So6C2_6{Hr{VmFUp_Nb-Pl>#LMh4(XLz7 zPoHi5;D+^yb|5tmu4yuLT>S{Rr%g*ryC1C_99;CU=t(H`1wbHz;w4is>^3YoV3e`9 zI)8g?a9Z5sjBC&5$*g0XA=EmVIkgZ~4zk9Xzt{YLIh{{JATnUa+LJ;BgN-~rqFwQ! z=7Hqmi4K`Hf(vAh9P^A%YI9f9|JJmvoYJGN);sR)W@};Q%H?;(pJSx~jFI{!K0437 zhld{0+NY;*>0mE`qR%$|TF}BtrpDzO=!=o5ArLIOb;9{f`&9RKZC>tr@?O~^mKUW> z!G@#Y4#{tU=LO^!$=>Hk;nu`lkkM6y@vVru{JsJWMmYm&nFtpt)Ybg69vIxU0R8ty1B4R+J_5v(K;7*3H`UF;`+ zbjIHD3mTXq1@53Q7kN5=57;AnDhZX0t&I=P{2G&B?>E~6eR?E??Ew}$kcv}Uk46*! zl|DFwieJW$4td>NmRK9V7mjUtK}wRW-`Ew`)mqSvk_Viq9$Ar@W{Oo^r|Ru55ZClKC+q zv3N*zw9O{MJ*hBf40pX4*~KIl6VeA7;hnVJXuNSJnEU5?5GoM{AXuq*(Q)h%hWnGI zn{Lgvy6#$nIQigjOx6_FUG(&--m5R_S^d$4eVEy-SpEL&jjLb3=#|y4U-zl=i^Yb{zLBK40G2Ha{IAqYvh(Bcmb)!l8dyIZe{+sZV?@{cayHESruJa-?CAE zXDA1k2XQZB?%jY#W@~J2GSIkYDmuu;y@so}Y9nXT^{Hb_=jN~*HW;fjRQNFrT&2#Z z_o(yhykoI(WwOkD>hq|PhbqAsF~h3=nCrF0(~LrwK~b^k#8?q|MU9$FiP&tLRd zaTG?U_gBwD`@Y8UlgMu4_@B;$Q#z0?YW?hafK+|n$Dw1up%Uh_7e{i!Z{bYyME1ws}rrk2%86#*?l?!C4-I3TYG3ep+CW%yUQ9OPd~wX>$j#KsB0N=-n&g7ew7Q z6VOgLBAI(gggTk~mAD_N$^JM~%=S+#`@#WUPZT8^?~-!PcuvEB=B}lDq+z4~O{`J> zmdKdzdz9up$Y1M@)I_A;aT-lUY2*_b!$u)gBMKJ63kse;LHp@_3t4r*anUQN2DV{ZJpZ!;hVia9{eJWOq6TffK8uONMv7V|_uo ztMkt>G?Nvbm$)Dfs85-9m7LtkpwWvd7?0-!S{Rb2yjmC#MMmnS8W?Kpf9LhBpIC}s|H=b^&jQAL{4_{&%irquNS_Q z=r4rxbz<-B96at_at7Ra#_bjyogJ^(S9Y*NG@MI`kY05a_hIfS6#bssEg9!M#+1Ok zD__aO#rcbbZ|=EOhyk|5+_M_cJGNz)E}|v4Di$^7fIZ&B*h#oEPBsDvU0HQo>U3mT zmW@B+w$$@DmfLbdHvUAm4c=pH+eTP}k?yS$++k8F!VnAY3b)}l^Rl{HFg*T<)L1&n zcw?3oHTiDaBb2VpML*5203Y0VPi9~c(F<)Pa}Nl^kf2$4$TF3UWAw~ab(wX+B|t5s z!*{ea$OI_;MJIQwVSIMH+;&(`@~9qArJse0${h^agq?^{L`75|5x=1>HtaSYjt!k8*7d3ZFVx+G*Q{tPv7cd}0vAcZUxT#YQCoRoIAh5%^XrfRUFP zCIrs$ZY=?pt@I#9r^+Wqq=_mN$voQbnhuU zKy)tgrE6}z8z7(<*^AO;PkoEg#GwXR%2iheGI|u^!&s%!mcZkfu_6>%{ocFlR)2J} zJfOtyRNEOSn`t|B0r&7N)Nuh7JWVsg+wAJDh_~`45tTxQeH;XTb;uz`k7Oyp2Jhli zbw0PVP~jcRu7Itr!7b*~UJ}qddvfY&E(yr|DxfQYH+$cNh}Ffq&jKGE4Rh8hv-iXs zn#s<(JA@x%^?tj^LQukqK&NEg&POGhKy&hm)tnfGq|ujHh2&TRsl@#P$-aK575U=YfI1?HS=Gk_Xu!AbFU>kC@=%9;(Grqceq)xW*AhB^{VU*|E5$ z>f%^J|4+u^0F9+Isp${KWOg473Hv?JkkOdSADw1+8chYG(X`mU?&gG`K$}ba=UKCy zV2XZRcPA~jxjby~smMKZ|N?{6JJAvm4czsVdxmQmkyV-JFqWbp9|vc?>_@0OidiKFA(gMT~Vr<6t># ztMFbv2stND4TViz*joFTcP_V;iWtYe8J~Lm)lVEi&eZmhc@kC8Jh`_nG|fE;xqwgw z#^+MIv?n3B=Be#IEDX&~@YRxGl&su|-Dc&Eyk0A}FwT9f+#S`WEBA5lt}j+g;#RdL zV~9|JD=5Jd$YyZEXUIb+yWvZ)1`PJ+x%t9kaB|(V;YFhEfOi0wuC#)Mvq_EJCuD>K zQP~?}-X?t@M6FVv)9gYv!Dgun=NNOuISS5GFm}K;C5}Eos}VB&BoJ#iI4@j31RN_F z1sb=Ki~aukE!u1PjE8XI@**xjP31E-snv5_A}It3ij47787V)q9Z7)}fse9=y3vxI#!K~AV;(O|FIoa4qQuhKy{=Do&zg;COF*rzG9= zg>IZwa%bsaC%4oacJB z2kWsf*&TS_=k&fcGXG6+;Z}}?UgGM<^`*+KoY6|p=m$5RrZPxwEc76opot@WX-evl z)$d6}O%*5GWL+h4*~%r0Poq;-X6n~&`>JTDRi!zfm()9oqv8*HmMl)H zn7QMoy2tExq06*aGARc(Ej6N^;Y)6BFSa+_xG3hVs?sLj$Q7Hxuqi#riL?Ysa+PFm zm!wbDS~Fs^FBpPqB#JP00$qvR3{MzDNK(|VEA^RG&4DeF;c<1yX%?z|WTiQ2F6EW^ zl9zl=i^9FnqR{r#AH_sp&J?rZ_|{lRzhL2YRiHMwV-nu%{jLUC$VXM5TQ}8Aq!>=(M)uMCK_wpUI#NdkD46)X@8qPv$uJ7eTpihR0b#b0^LpA9mtNt>bbuW z(VOZJhi=7{f#|J<5iV4Uk-Pnfn&@1K+)e$m;{_z5K-em7n<8zV@@r*X^%--Dj7_`>0@!K6fwUuP-g%5Ww%)Quwi& zS-F;uMo;Dg0g552=Aj3?rfd5}OgT>59D`-I8hnot_uO$ISmq7_Lx0O zpC?DNh~v=m_{m&BFEey}?{jgQ9ZOMLVYskev&$50|Lrl67-p@)Nld^<0~@bo7glf|kxWrDV(Bqsz0*_K${x!KMwc4*opA zVu}|r>ijW(349On6302EJVy#Wve6U@N}tVd__{(zRT$W)z6L%59_D{opQ-;tewzs1Oip7!PN z<~{{p`x6fZPzTH_1@hj+j#p8PKAxP+P0QZI(_S*XBGK!OEK!ugY%%_~MtbL2XvFmfBe z!6i=h&?MNq@O$Wl)eqgzV-}ArVR;X7SKz;oD~OnLps#@0jk+5H?*P88n0MrEw=6Qg z=$2*zOQIX`Qn1Z+yGXFv=tbLB4xHOC*`n z&`w>MbpJ)|@q|kHT+yE4Ylk7h4rQ)w4lSsVToM7kUWa(VY4&LrEW7;VEnWsPqg0Xh zWsXXYmRf%<{uR5-1y)l#Pr2wfzv5rz1Var6Y_)$5(D$b+^Vj{`{?pfgM*3Tykv{#$ zL+jriM%mkSnq%E$7vCw6($_#<9o##xq7Vsq-ZMwsynn<+bnU(JG)LUR(N=c~^byDl z%$e36asRf{Er(l#Ihd6A@&KMn+V{a$YnB2qaOP~g+k4~8U8J*%@})=IJCCV`!Fw?^ zkDeMMaCb)-GFiEYtXjhh1v_2gaFlu% zy45^-$UbOxJ?kdJoV)CPKgLGu2;)1Y$Y-oyPILa?;JVfFyX%PEof$9iySwH6>4$%P z-jRR#>+^nhe|hbA#s&Pu5QcH@X_hH8X#oU%W<;JGU=a#@-+uBGc)R`NDe!Om$y4Cb z_LHZ;hvl!~k}Wuqzsvs}g}_BPV(7Nnd5<{4?!1P%`m-HRfnUjAVe{v&M=+y$R{Fp9 z?=041NUfp$fw_>`Ys0ALeR??tBo=KP5nUU?Adj6sSMjZBwfc=llDTOSr)lGYV<0X~ zy;o1dSwIz>L~?RpGFM(T?Y8o=Xm=Y{bwsbP z=iQV#Xjv}tAT@;hZ)aCpwOGVA!BXIv-o}On;o~bJnZuvS|O=S5Q z>~)&fU;WNXn{;;6Ezd^!qS^ASpYmsTt4*mdMsFJ#WsuQsfS4H87L3yK%N@jnMCAzs zEXpSQvTv<4q9a~j;LX0w&T@no(0krkD~miZvZMFa%8pUMJMsXZiL$~sra!3zGar?w zc)rNw>>sgv7RsD6jMOl7j9S5mDl}pJF?A}cEJ!9V*K3v6PdEL7KW*B`bxWGUL6x=dP3!j z=8IrOF*v*!98nBb7K0-dbk|d`Hy>F(cylOp)W&qR)J{ z>%kKQ4g^B1h~ER!Yr^m)lUJ--@$rrxY4vt&jV|69S_J1FX_5WICRr&@GrGj#$SR$| zSNW_G@5DuCSdXVckil0CZ)5kqQoqrNukkbM8HN?TZljz~(b;)PoDm{^1meBK68f>%6igEWg593D&T z;Hjt7NdAsZ35EuB#J6W~6$PsCJHq^mCop%$WbI+z8D%r8_>*_8bvzUwaNHYtSdIrO z{L9v?NlfGag*nQ6JQ(>0U1`XCToK7FArO@)8W8Z7*@nT*++Zz_bPb0MlBH8Ju){QbxSZ6EZ$RynGVkN1MWw*Eu)N!qp`>ir;KbAv|N)+*j_%(il! zeMDvc2d3g-RrKa5Hp-^s5hpAmFao3u$>lmIMnQz_Wx20epn2CPz=6b z48B(kZu5gqCSRj|&7@x=Y`t=G>TA;PSb| z4oA!yIz%M?r4|sW+TUr}SYKVz<~99({;}?JgPXz0W1Y#rPyf+O_g+!YeMZ^RcvR|t z#pefiTN4AOa?x#ZvhcIi|J;J|!Oi`X{5Gm-qqOk_Z{j@U6%{brmfdc-T3pBJ1kX_F zaT}aOx$BXuM+Z@Ya1)TLEIz`!(RyQ?6plKaI}#kdUXZZ`r@d`*Pr*VN&f&i;+{cS@ zhbTUKmXRGKa?OK@9b2re1V_PS85Mx*W_$*EJniNHXGw3;w`GgBR3b z3L@KU*%O9mID;3!BDXZ~4;wmco9uH>n2yx@LzXEcMmt~CEM_ikM(fy88;sp*Aq<~a z%ee^E(pDT?KpS|MLlh?Ll(Eqo{R!)?O4D15kApA!FZ{CdzWK*s<*{7sk~8o9>KT`J zB`$OmEcaP`(dBhu`ryGLMVW!RNY_&&g33_qw#UsHft<(RB*f3UQGIK}q=)QhpTY7C z$Z^U1l*vq{CxgHfL10sM#%OXp6MR1%1U3eN&3LRJ$MeDWb3x$QAn-zV2Jbnwy%>CN z4FX$&z{_}|Ajd1g_wR$iOF`iE>LRxuN+w5c1N1WT%&O?}8qLy1C#+ejiFAF$Cr#f+Mf2(G z{n5cSK`(w41eV$ExGfFY(QL!<2gvwfkocP*@atl(Kc{g!MG2dNJQf#s#ygbR<7 z?Xe*BcR}Eh(riq69R8$jWsuq%1bRxdG4t^?WLq1gt_}jLO0!LfH36Ah{)7N1bA5ei z{&DVk!BRp|GQpUiXa#Q6l1sWcl?84r7eK}Z2e)mT=;YBKP2gy&w^rP*GC9@6lYmsgjJGOs>p`Rng$&Xl0NV@Fd|;90g_*f>AlU+WM&chBv9=PoO5X zh=Le$p#^0Ee+VX*#*#h4mAA;(A0+R-s!XSnJwld0lke@w1GC=s8O-=QCZIo0JMIkX zJHJ=hQW?4B9f=Ez(|^o>o&NUSr(b>vun}j%r@ZPFwjt*c&`>F!_$w+b!GOIcbj9K7?D0uB~?Btm{*5dpXOBm%PlRLmj~dXgMK zy#T=1^GV?M9YEZ`kBl#MjOxptr{(=}hb7vtD4AHIUMK26O6-?@ zwrxZf5{KOEbH=I3v&1}KtotqM7WM8gM*W#6*tWKJ1B`el2)u0qIH%+o*ivQMQ;2t9 zdV+O+`t~9})GlMNDLqrmxNXgWZ?I=kV<`QXAg; zs(I?EsWZrxXc|!NwTq^P((vztspFj71!Z2qV<X z3*qxN1&>^b%$zC&f{AQp!f4U8+dJVh_!i#4g#~GfR?Z*390&P>E0f%}*AXP>-){UC zXOIDN2En+MN4K5KQM3zjl6!&4oO1`9Nb7);JE0M=IQrM7Z&%JA&wXv)&cTo*jGTL& zx8pJT%A22-#mF|9&Z^HtS+OENGzD=am$Sjjjx5d{Q6|T7t-}mY1J84~9=K^9mOhAw zv3N-9fn;5yKfN7#@799CvO0GC)#A7-sL($Hs7`Mb!>7IzO?~C*V^!a&s;|jMiCA4@ zAvD!uhZ-;(Qt>@K;{fV^*R_i#EPi{L;esk!Uh)@LmrT#($XqtUg4;(Ae??j7K{HP@ zMF$TOkJPl1w@$U}P{KD05cLm-^eN>;^pRQ?S5P39JysU%_p-H{C=M8S`NCW0Dn;L+ zXpS58Ay%O=vziWs7y%B)qw_&mosSMg5!x$ z4$q1ZH~S5rWij@3|Ee8JCs16Yxe)uq9T z05RJ=9$WOWf)i@GLs)sFu<|I2fs+(*L;){rZS2g-T-zsTY(Afh4(icx_`gqqaJF@{ z*N)KFADd9aybCtmFn#?aGgpjed$^*Cp%@>5jK@6h`c2(%TVr(TfD!!bv)I+ZMPO^{YfjJHdG8P83B2Mqwv;(1}7xdV!|LQhXLD$zvMi?tdkE$s?4iUrIFAl}^P(1=KPbvcmr2IcZ=_QO$4;*L{1Y_F$Gt~x zFisr0erluRe)NC&(YM*?FZ$8{V4~9tVvS#}NskWmLd79x*>slOC+CWmoZ0u5sw=N3-HOKhZTE1FM3EI1#e z>X1C1T@~&96VF}d>u_gfsD{4%FbC21lrNVF4 z`atn#q}gD=qavZaJ|647u^BAj{qUwWk*?>_0k*k2VpCy}@clHnX8P0{PHs+bA5zpX z6ijKXo9nUK3GBQ|iJWlP`emUTgvw3X8J3}d%9$cm)@D%8FL;S5_*9`_FQL(<;Pfh| zBCp*yyaqA4fk~4%hSJIVH4;a4|pKQE|v+Q#1%x2+~qV|xH{D>?xvHDnA zHLSyn3k)t)MSn+sa8LBjy88Sao2lWwNq(jWY^KWS???&tBSbVSwNCRir1~$Cu7!9E zZCptkW~Cl$S}IwZN0)@_{AKE$OB)#U=vLN=e*1+^e$lkgv!OO&QX%1UwqvIyGP@>3 zZuv3@6KkANlO7KaCvwx@)_f$wgZTkrqozbJ0s2eo0F;UOk+#Ck#{}SbV!i>#fzjn5 zCAp91t<$XPhYMMLVY5_{1?1%^#9Z~y3W?t5E8@+4L_J(*Ke+!%}%xRld%qPb#E8 zM>>O*6~g~whLvp?OJ%cn0#Hh_^uqjox2bngCXT9YI26nzp77nSTP(6b1ADiRPbv=N%HFJGR={j~}+q;6gO> zT91fpG?QQCO+{(1af-x51Ra(rWFvnv;qB3@N2IGF51w;%y#tZUkc8({lxMvqL4CPp4C`|U1Vb9L}Ud;|^NA?O2Z0>$NC_$Bu8 zyiqrBc$VRQq%$K(A%4F}s=I4tBBIM0-lB4jog7ByIoT;r_IkwGSLp(3YB)NpP=ABH zGKp@gez-JNlFQ^O>ilp6;aWdDmHZsT&~kBF%3RMgiPiknhs;gJhEQsRQD<0>1PjDp zvG;#d7S8ymhkurNvu}?>7v|N7|DT25VE<0y-E;M_#yq{OF==YxUcO>OaC+nzZ{%+} zF3P|s#q*py-|dOJc_$l(>X*fH9cA&O-i~$a?C)+Bg^Iz8*TA!u$MHT-d?OER=$F^Y zVeT16T$en}o&kT3Q1KjLQm*<-N7WjF*6jW9YFf>mJq&2!gy5RyygZ9Eys*qc!Uo$#3ks6jO)IdSdc05!;IzY?a8 z&rgfNPl~~hi@}eI!JWn6fFESy+atF?7X02<+TH`nJ$nz+aJw?*s^9!MvZ-8KrT5Wy zv}pbyay_4^oVCK*k^5GdD76ig3kl8sdatq$>Y&~)_ zykEd>7wyhfkFK?dd$M<1(6`ixSodW-`*S$Sf0+~{Uq!O|Epf&g_Kh<4`sRm(;Y~Xu zT?-AmqP)+=xmAu17qTQLZ@IPsZxi>_#2j?l2JbO7^5n>&eudv6-n|j6-DWOc*U)L? zfj4^Ii9FJ#_Us;`)oL)sOmWgp5Byfk2ENacj_Ek+06ZLf(Z4|c{LGF{89HIaD~iGL zVlZ3`4l4%BiouW{1jhz9>Zy7)m>H;ybUny|Rf|sMT^-ResC(XYzkq187~mW&20>a3 zg0vU}X)y@Wq6x|h8cD~DD(@KXO9~KiTI2!xGYrrHK4i9?e*`=NmxsVI+W@h~vjj`ivg1v#4?abZ-V;gh7+MINEVfElyvKZa5QZy}n zNW5t)9@lc!D<+yHyu~}>Tf(ID5hUOr78D}!;;)+(vc=o-O^aq}#T&{u3&(GuS4a&0 z)Oc<|grmjac(dVu!En?!4sd}#5#HrwZybm=J)b&MHa^u%3MNJI%7W~qZCO7iKW!5B zV~%8m{2kf0WkX7gBJqG?;(eyX0Yr`}iByT>)J7c%QV>L_%@CI{L145AWZQn-e*$^N zkjKWTK#<3lBF~We#*ue?kY#KTsPgMuZt5FL9vee_yORKw>#8n z(MPo*7U$<5vG-$QqK}T#{54+RoEn$8zPUVwm@HX$x;BT?`e`y*cbdYd7kkvxA@=ED z>c-^-99Uy~S)}U~D#0-4ph(xL)NA7&SH;-#vEpGeX4DLh=PQoN0)jJvTwul!a5OTc zsl|3y7;qq}j~6BNZ7Wpb2!TTuHgv7+^Z>?z{5^iEv9M_(?bIOcv>;$}Lkion_`k@t zA@k~6a0mfztjEvbk6e@scZI`ZJtaq-g(b>+zvwF3x(+f$s>N`hjZ`ZW2;oTdqyPaCaip zv8FAKyMu=z#Caqlu^q9-%j#m0uJwpppgob!UIO@#-lpCq!wf*Dl;^z$zlZ-pa$A@R z(gXR4yLT_rrTG^f>0C>I-drAZ^O3ohj{Gq&(3%1l zLK=i#ZQ9*;y#xW12Xssa7h6*4c7x1E8e|rd3UU5?N;gZpPhux zI{mEzDyo6%&wtkk>bfg53|>jM2Y2lVHPOek^)dbMOU0fhn$||Tj-aE7$%9O(*^HQ0 zZKr_qwHNG!p9i0n4DZPQZ}^00=3_XI1Bju;i2>j;ro~9-Xr|Hd?y;#b1KcIf4Aw+$ z>EXB)&s{nJFTIawQ74){iFDmVqy=M*`ey_SN%uxzIFJObjA(8NdE6N+#to@MFb+*k zK*EsbL=~^;kRYK0;a`8P;%dyflY~PG2~F!$f2T6_#7-p7tj|SJ;KpQY89%HTJk$^N zpQw1{3u08Rm@g=VADLDQ2IWe zDE#%mM334OUeP-cjy%{GjoiDg1D{0E+_aC__kd>40yv>*WrViOuZ+1{RO}HdTiFpk zYDGsZyv58Ju@^rY>0D3SS|*9fI%An-^4sTSmt^?!&FE90M?&EIU3MzxRGTT@;$3o? zB`zD(XG1?4?84M&#HTdEr;N}(2)Tubgn2EE6G?_DcOx8MfN)F+=*3AvpurH1lSpd_ zqP`FWrl`y2Bj&y*jR534Ot(elk2HNoq-yA;Pjn5zOTdau7)zo?4u?kGjL{P$%Vvp#2PPu z1peP7-nh&%0!;(yFB=d>4eezEzHuGPwXeUCX^U|z)(J%Xs*WD=tZNw6na>*dbj^Yx zjpgQ*<9w!E~&J&=0g*nNe2RQFg91s+^387t^h+>ld2s#>=}S zxBkR{PNx?mQ>gN`K4)iSDaDexYif-PEBJ2jP9JIuNRR}WcNm9)c?wT5yR$6)o{R*1 zmS_4=>sNTc+T7PTuXx5x>HpD#HV#f*$m_!d0-iNTN38J{XRqns9UdXmkMu=yfkAN;*0o5uP`_!3h-v$Gq(;73HuG;j z#`Pn7Y+HmIxJai2U?$&ul6;^2kg%)wWCmGRMi@zm!%wve%~wE+WV! zq4>tt*REd2BG1m?hSk^^F6g#n~CdJ z|A_MgEkGITxqVXEt?`@G6NI+abc}JumzhKc&@&wKT=aPf?&&6T&1Fv01_;%H`p8eO>)ce{n)lZv~-&0L~H8@gKukwR* zSKXiTR81)V$9D?DS^1V7j+dO3Uz)?R{DsPF1FsVRNtYNKzM5YM^onIUd~UVH?if-mrurxt&8!<%Qn-o2 z>Khj)O;>)ZpHSwf!g($nV%IOBqcb?C(%jSJ8|g(YvrVL=(RK?OY)2g_=cygp^XuSs z-mX_c(x)n8)Np<_4;NVXo&`QCRLFwO(q8KkxC)u}Y({lp+J${ekV)Op^-gTP(CFKN zn221oY-Rp_H!G-R1p| zI19K2Tfp?Tr1HJU#UXwmdY)dV&Y1Ed+U%)^!cGqMI886hu56{XE2COWT?Tooi)ebZ z%bEPKE_giY@irM2?rz4XmWGh{&JZZ%GL^>i~c>*c?JO}N+YrvW)&EvW25aJoCUY#0Mi~6+}WezmQcA1sjzyr!AD>qey2KF4^OhzhcCNruP z$Gt!*GeaRC_al?;@7tS1pWe%iVZD z4*$E-L$UHMVBs;qkm-<#IG$IOh&VfUTD@ubim99*61{I@VglR*7CG=@w|Ox=x-Ive zb8{`j@{RP$ZJp{b)EPC8YAW#WPVc7{YGx4=r3s&!biLAOMrR}zkq29w$NkQ^8{_wH3n`bG6j9OHyc1EwsvMF9Xu|?W z9&GN|BVSwiT~kjo-0v4*HOx+i|J^z914#qY z=wouT&6#BpGsbSig#9Ux22ZF1o@1b6W@^?V+^uRx!d~X)_R#!8z%%k_ZC>D55cSw( zJtsRSCPiX&`&uygr_879OmJz})lHc9g!9Hhg+EcQKU)fIww5ym4LoEyZQJnRMnEL=Zs)1(7vu0@wO$Y^{vk`iKZe?q*B^UyZt(0lYy<(K9x)(P~1e3EBRi&*R0T`yj?_ z2ojrB`UL_i2ZfuNtGf*IkwotwjF_9^pQ^rt==*3}&$_6~x_&?Z-&znn=0vTvG!k`_ z<>g{?{HpaZa_*5Ey#ynueevvF6ZKl&!O zols*YQF#EHBX;Zdgp$$)P*ZLyMtA&e0?N1i zI|RExT=QojuJ^%Qoc5zD_B!pO0Ugx5EdQbbn4Nh+j73?ilYC+FFQ_!T8f%YPEXIyB zi)o-3ae!T2#RyCuv>mdzOdJo!2NATESpiUO>5_yk#E&t+_DQRJXtc9{1k}um16et? zj=iiOgF1U(Dj=_rGk-D%UAMIk{Bv9DbLD-Ro;oe}0%`_ZZ9W{pZ1=5JM2*{VY+%5z zPDJg35~3#fQDJQX20|ku<_#rjL((C50M2b4y?a3maJRK;&x8R}LZoW9s{rba?%@@?*$$=qqpg++5DSMBQp+A+;d4wTZ4!Xi|5 z9yn@k00*#s1t_9x*Y94ovUCCOMpw$~RQn!uMH_;pJ$6@6l@_qdUP@0SZf-BolTtde z#~AiPNGyNhl~NN_`o9dQ37d@%?E1*99`{3-GzJ~%+-mNMTrf4iMv?H)u)by79AlYV zL@ll*9sv_kxj>F2&3f1i&nmLVrST&10hYpOgCVGGHQ_$H zBl@8j|5RmW?a1)8pY)H-T>D`e$AHFRT%BE88NRl>8LkN9*+^_HR;Tmeto6iXpN~F0 z{S)k1s-GU56k-^*dityk{yy8&|96D}iy1bc5df-BTQ@00UR$V8T1#oJs-Oev{XB_W zEvqu{3-vbAxeMr{a5-IObCJ$Pe4Q@yxYWGUL$GYAIj2iBlxjacRLf8E>7izR8cq+9 zF;#oIjM7q7{0s}FXVQyX>3aWk0%-+KCvcepk`D9Y-O$x=_GtKLZf22#%!L>u6z;5R+Nq_bkqnHj36&fAmkGUg!&{ejDJ+`X;8+DK= zVglzDuODGk|K*thknk3YWo|AX##MLs=1Lk)%^T99J+`>d7a$ICF2LJzH9qdaX;9MO zUX?DV*`6vd)1NxjGQ=Fz=@Q*}-0Pqdr0R`1j=5{+B{FZ*pINM?B>Z%{gl2ky@i7ey zG>f`tf5@>gH93<%Gj&iV-<%q|c;_P0(#J%xH_fb_$Q-+1+-L+};|JG<2l~fEGiQX; zBfx=Z_@)vp#GoO-!e7L4SC?zRaQ~zfhGOE8 z6kPZtMF#=_usoEMOA04@tP- zBY#o)Oo>H4nEc|&Z&$$I2UQI{0?ds(h%{4dm=-uAG;APwwrEo!wRzYcCjcGkAnRl@ zi@Ct`!`Rp=;A=Rwu;Kk#jl%2%Ef@p>twD7Aiht(?55izx5_dc-xkg3k*wR#f6M|N7hOCcgyj1e zz7vu7^MwgC4O!H17ieziWxGN|f zO@$pz{v?EDnVYwV(_eKLd^Ds{*+Xl$dEfS|&;{yN7i_E=G6#{=eL!qjacTGehnDeA zkV7hqzk&_2n++qz(VCkxt#$my~WEk~1(vMC?tX z7GGB`dyYuw3w&g*D<2l=+-O5%Bb{pq6>MZL+A088x8sDu%LfOxLit?`bUi z@e3apjAeKDVGfHGANb)tjb$$!Vk|pDOQ<8;g0)3!CBM_fRJU-|sVZ`B>uCN}_Ifx8 z#?QSX^g$*hHLX?ro@*7f+57LNm-{fd)#_!YxNxO;ken1-E8LXe$HG1eV7$oGPT9_d z%%m>hZf*RPs!L6ZJow#n5#!@&<rt>UZ0_1FEy~YAmVvy2eV@fUeJ)x- z2{UXaR&(vmM}_(uGp8c1d=k>-*K^+v(PFidX={L&(n^|zfM%6Fp(&87{$FG=Nnvwp z3lC^Z;x><3G9{{iP^hM)inZ~EiOOP2`Bn2(=wqGV$DoX#kWDuXEo0+R=I$1sxx7K0 z_cNPrg;Hm#bE(GYW1`RT#xv4$R6X~e4rCJ7+d30(ar`XhS! zF9BeJ-jSKS0=Wg4ZGqUxgDo*ZO&O84q0}x)k%$em8LcJH^t~mla$9x-g2_*Gav#;S z@2wiue{PTv9>_c_+zW9B+5N#X4Ng9zVmzfpShvv*21X%XbrNSWO7!n~Ps9W}qKCW5 zqSUl6P_FLzFaQMe(mz8G<>6i7N%h~&II@U@!K|7QgMgSI#vA&NHf-d}c)=Irv0j=|t6))KC23PQA2e$FG{zX~yu1eB< zDUtnZr99#^8=92NjhXsuUZc*oc*ft4RATN6e7>qHlevm7*~Bg0ijRy!_CS*hw>?jJ z<&v@>wQCnCzyRN`I{{TI){nwObq4~EA=M``mu?ApSNaw6W{r6i;VDl>n6_fb?rgvI zC!Uax0Q@<~msJdpU#Jv&@;q+=Z@Jr;pyFy%lpL}izim6}&<@=8UK7LaTS4xc=&cSATHPdWEhTWCHtN8}a2k_P zw0zHaYdO!kJ^jZ-Gfl&AHD9^~_E!^G%=s5`vN=`;Tjvv~rEsOk5#N{}u>tid8g&wwd!)ANap7~f)Do-Cg8bMcRLMP$b>PWqLw#z$9 zU85@AttgBKC6qs&lDf%08w7w0*pxbhW=?-UXlDH30!?ZZH&_4glv>11!aiDii8GH` ziKa!nN3!4h@M^}D8kc>k{IuV~RcfK>RnO};6^6mShoC(3_%JbF^}vQbw${6qTK8NS z1)gS}@e|hI$S(zz+D0^tQ)y|wxk=|#d2OF7jN))R3M3TgBf;3Mu|t9(1T&#^u9+yT z^Q)>@>otk&^|iRK3J3}dKBiUI#*K9rA@pUDc*g8`uR=|-1TA@C{F~9FdRJ{9f)~!c z1~01NQ%!~^y?>X0MTnDr#UFa%-cJb|G87--<_0W$ySE9xTP=JKd%6JMqcw30lNL?T zwHPyS!C74w_Id{yR5lllN{G-tU@Zq8G$>e42i6DCs)H9#@3q4Uu)gm}gE5>owNz}w z&d`SEn1=t?zTj^0Hd)6->U9>Uhg+Q1dIYCc^BjZm5?#Z-hP*!tVYFbCj*yAVTgD&G zq`2#dfcEXB49~z7%V=E`+uIc+?W?`t2O0i`_I^<)1CE=WsTKq&i`H=|5SmUi#A)td<6lJ4~5sl-+L-XE?79Igq& z`FN@giFDRRG(CL{Pb0Y|R;G8ESCyWvGIt=2X@cbY5<~|eEWogtVW|ONc&H!}#{6Ni zDw=;d&u#M?oxHJsyai>lsppzX_jYC9@q%;d`b4--l8>yiaoxYEcR^UOSpzX2sNjwx zyle1$`iw=+(DjW}o8_i+g;v}-f@D&d%tOT$yo?M-fO{3z09@J6p*Y^5Yt5El&-+E1 zd^EW-+W~w%e6aOoAMPWdeQ7y40}iTL!}qtJ-DsZpn}(=-a?p>r{C=FLew=Mq6#cl3 zhUtf4L^yA#8$VcMx-mKEMrOmXn2Yc3d(;inA=3|I5#)V-XivULPw37*Xt3e8hThrS zlv=3%T;mwWJY&u?l-ECdy3ZvtwMZo)fwq4Yx@?um&Uls2E#C7O^igyw{nR`GnCA!z z)dVAgnoiav00)L!6rFweRerqp5Jd;zYv28brsmbmlIErX3RchNdl?2y-sdeH(>(im z7MeUJH^i)7#LUd77cOKqd2tFUpGeyIkBhpAN}dErii0($ZCWW7M)ir)NpGd4HZt-O zPT6y-HrZNyfxJ!gwGyIB1YjKC=O=M+!Vx7N?GXj6q92XdBBsRmeHcDq@gn+#Y@#1u z_cmAt+{W3{h zJPA%LuB+<3`;5h&Ih9iRnrys^Lz-(WJcT|~Q@BB4r4|_#<5*E;MJ-sUPVdXMRpmDk zjn(O}^reNi+wrhs?r$;zB*dmcm4rIc6jJ`V62jnLK&PGkwQQPnZOfUSn*OiTP&oaq zVnY*(4V|#}aUMBzoPKk~8YY@+A}N@p!T^;=88}4%6AR*0lni$Y0*xkL>ZHfuHU|5T zcXH>{LWGtn2?A0rd#>uh0WbWieeuluSq-qO_$3+>r!mZPfVqm_m~cxaav<9B{`F_# zRa43Jg`x}-}nYWg?Vj2fLCUp9-KwVZT(l` zRuBciH=>U*@SBzFxUV>qU$*D5MAIwmrmx@-b{1E3QtTWbI88gQ-ol@2PULnxJu^kD zCQjx262`oZ?LP$s(8f|)v?62> z5Fv4bX7VsDFRriJVzn);eXFf~Az-VSBm;q92;c%@HQ@GyQ5&}`fXw$l_nFDUV%zWY z)C&%O8DbIv^r%r&LRjl0Dp&qNH!I!SNO0%2qlIlY8pLJ)StQ<(RH8@2?A zWg};MVgW7kZI!B2g@(DGN6z)r=8xUk`58{3Bq6DjNaZ(5pz_P*&shO{nSUk(_hv$) zH(8<4o4m1bA-u#V(P{E#3IWv(74+PQzxXuzeR=V{>LC(u$6hs+Fzh$jy;SJ`I66{Z zsbKC?=fs1#PmPy@ogn&PANI!DA61_qO-X87+QX5`l3a&>Q2B;cLO;s}nqnnEI?F@+ zpz{^8b3aJEb3v;A2jwq`*M`l1k&23k0%bm!MBWCeh{fgSmlGJ$xqd37wNA`%_3X`T z-U~ibPzZAaYK6~=>v{uAh;2!r-P?=@tEg2GCofugnPoT7BBMD{e$xFpj84dq_?Y-{ z7MVE>!|^j0=RC}z1HvYWi+6fJ*x6tphrfw6A9zM40J}m!CYfR#WQ@fh+!|(u6G+u9 zS(&m1treKrl~{oT?(4S#6YK=buSi-6EODXREwnCEZO)Z>ToTz&HdV5da${@z9)G>= zc9u}PnxR&Xb2UqymDPM<7QBq`VhZ6Gb+YlQ@wGyp^Lb1{4S`#CZ(o?AXLoaE2>0po(1TB}xbPVQizu)OMo6pY# z%U{HF9Jsc#&THS7mFy*B=fm9`v+t7?O)rrnU-aj>LmqNJ!`q^ z3k|?sAGU5DQp$Tm3}k<15f2mgMF;_>Ev)(=BV3RB1R)g@bIszc<&#V)Knhn@jqJca zStBiM26~dB{(UIG@%eVOYLMZ!l+BWwu9x+9t#f_xg0Y_vR%1S_#cuw;rH7+-kw4B< z3^$svW^;kykFSU5oSLA=%iitZ?_7W70zKsT1gr~-+4&g{z^hok3n@~oSDF3xlF zF^bO<72uzC^SPIVFlwC$>uP>VjCQ6R?v)DO8lnB(&aXTi9y*`@8VfKt{xk4UKBE(M zu+TZV6A|64xOD^uUJ;>%^MnlM%b#0R&6Q&0@l!{d_0@x`^OCEQtENC1uS!tHGpy35IM;i8nTj?BxrkSO zKutoG7roisBU~>7?uFWda78i{DghLUF+GrT>O;G!oGmx3Wa>L=>P^6CG zTlokh0&YDMo)a=?MI{ywEr4x=I z@bIyOb~aR}j0<=ZT>Q!LJvpMWsU#Z4>4#`Jm%J=yFEqEo}N)iGdJkDvgHMVk?T)Fl^GVAoP=_qhMzv`YfPmQ*z^FA%y zo$7Hn^1gAh^Z6%#EA4?`Y2mlhg7!DoEeq?Gtae-`X-o?rO2yf-jypV7X=Bd@s|~Jw zd+4>)|A^GDs2<;n!oo!G37I6D)sTQzo3iHjh0goYZ&bep zoWBYsP$6_QmSyj%v z-{+LbiqEBj!Dl>ak!7{y0u9sqS{x|3{uo-E3oSmmGC_->z;Rj(RsI}SwJ$9`AL>;Q z`U$kS3NU0joyV_5i-l7qAddnsL5oZ0`){(WX?kcN-stZ`AcPLH#`Xtl4+jHMwESSP zGw>&QLtNHg3e-BJv8ITA295FRqoO;Kjk;hUmz%c7dERrJ*sdrnL0j%owO>u`g`WrN zx`L}!?cLOV6>sqUF6hw8ySUA_8Y32Kf*7_BX|Wnxts3i=#==%(6#J?dsxNz>ng}3N zS9FJ+#T5*AxDBo@m%m1(ydunD@EJjtB8>-F0^dLyJB~{lrF4QcHpEGzJQLD*-La%m zUMbQz4jVlojfas0WHu<$C~t){e%XgKUISDzmS^${X;cGQna)jt@%3gk(r~QIy<6Xh zV$YlJ417f;ak7~(MuZ)e5J$539M zJv)r8Bt7Z~r#d}bJ@$PbcPopoHBK72_O+7A3ElC~FV;YHgYgE9RTY`5Ab|E)VL1Zb zMau_hp~9l*z?EB;Fo>__1y?B;o$IfjZ){~*?_}8v+Cq+#!9Ge|4>ieyD@&hMU*;PR zJ#B$L$ylX2rMghxw+r<>T>yNoqu$ZK3-wkP@ZB6b8CVtJp4J%ei6Y|kq<#{h3C?)-@f#TvmI4AT&oC#dF5lnvoIsn4QH zDiHDAkH(or0744Q?Ms!mZDWw=_{*El1z3kB`NPzGepdWGuH){BTP%7b(NYi@7&WIR z9(IGx6=}ir!Gn>wAYT^Y5wxBNaWX9A5RNipQ>f=3BL#B zJ7`3W&k0vtc5b2Z1wru8hBJ645e*f2Ad=d!zq@mbKBU_#-i{yY;aCoCN?PzTpMAGC zP?xN992-Rnf-d*bZ7X916bV4!a8`Z}Q!KDJD|3Ne!P9mU@L2NOv2s$LnUIr4FYhNO z6(&r(ly|u3Gewr6ceO7LClJq_Wl8>l{48*lrQq7_AEu5Um3;dQs>n9A%OLD7`jbqW zTBt~606bcfGDJ(1Lam4yw_~1g>)203bpH{ep6J8cacl6pzwRR$d!6~On?9-)heQhf zz`1_me6O($@vIZ^tXU_$8BEI^oY7(Gro^C4SZ165K+^EyRTCPwh`1>JKj;ZFyk21? z`QdLAR^oEXv3MK&Q37x6%lhF>xw{@DhWbkal7~aJINqxMG8~D$8FKG;Decai<`PW% z+8RNNIgQh*IGWa36H_GLUOZVUHe}V6kMdgK%UOA^T!ORuV{k@03TGKK5Xae#%-Wmc zNP8EgH6@TnSjJ{8aM>AZW7E^ z9tX2)SAR2RbFa1-jviI-`VSH)ed^ABC{Q5Il4f2zD?qZHz=2Ule}Q@sV9mG4i;ZGcZhYT zQ7coA5KPyB#qCVJ7O==c=e9e(C&Km4G6{c}mdU1aQXRH+Dx)MD@s&!*-nwAF7dx)d zxa+)VI-Z08S}Kj+iMZsy=t{3{S6PChc@>?_QFyxl{RE!;OaDzgrM++rp1#Jt-on$a zKYUww`aO022YBkZJnKKl(~JjCfG5#HT`A+>RrLJ~V6g(dV&GpHgBPAdyi8~1g_vM* zHNaVUC)9zff#l_52jdER)SqIG&lUElZJb-E{3C78ASuS_fOXa$*MS>6$8lEX#on^B zMc1t~m4Go^_7zLZqV^Zvy<@@0N9%o2pNqQeyS~s>No)h^kL*JB@cxYOLD!riEhHly z?v3lO{~>`B&snlm=cFHAOxz9x?yV^5F$_N*tM!-8d&dm^LNe;wC0vZ@q=sY@PAcANl-{ z>%50my?44CTO;pL?;)$+snmOjdcPXrzyaCK{|qTmjKE;?^nu(zZQaXmpC|W1 zDr76=zFO`ptozhOLrKd?=n1p-kL>QhKqtju{L~Y=F|{Cj58?Jlr5T50gFgq0 z9X9v^gDi}s;i)$^2R0}6_s`V+{t=!Qu?SWeMno*&uxLAfli0qUz81`Vas7^l@Y3{? z+4da-vs>`&iFbYW^}xrY6~I|>Ox=XcZaD7N@MB6MN3DZfsf3eS@~;bT;Qt<9%5oVe z%SGj)KfmE=HJsho*D_pqIjfQ~Rv)Tj@xC`a$KsP}PPi|A{%(Re?e-r<;Yu9_tJcl4UI%-}9XhM9~+YYV% zN8ep9vw(zjagC|hc-6|&V*jczbjwqmH-7D33oCLoiGE|1P|+u|PN3LK;H3BHhNyu);*QG-} z-Q3C+;I)5>j&Qv<`^a(G!f5q34)rm6@}ajABfW1yzme`4=VN%6#p+PE*}R7RMX`Qm zOOKiIbD8otTP#YEu!ARNQ7(E<(7-8fZP`U?g21CNJ?dpk5*`IlJNROmEE(`|Ui+bG zp>g+kv-kR6JPt4NN$>=F>@oee_w>8%_J6bA<-ZfuHk&2C{x2XlFQB$&Y|oq{=#QSOmD8>Gq%V14FBM^zrkp< zy@_-TXVLb%6Yv%H_vI_b^yMo?v8g*&s~8ly*z4qS4&+!Z=?CF2-aih1Az=SNz`jH_ zs|(dmE99LGCvxz7{udAZ%hT*PpO=id@)>>)rl-q>A!L7-@Dx)1Vkv*Vls_-e`HDlh zgTCc|DCG~PypZE=DRo)A6p@7z-H=UhZ#}v2q};gz&Y1$vX>c%( zx(GX+^{v|JgYOpY-Z+$fOfS{6@pxiv`6%CkhPB1f5$7?WN)D~EEC81O)C zdAK#hQgW!#{jg2)B@zNO*?(E0inn>9s@TPas$we_i7^kiy84uFYx|Q`Uf8B=VUvDo z-8=l>p*~ewqE7a3BJr|uRwNo-K-;}6)veFKQq7_u8W9yq>_*vU&aRG`2$-BA_B@lOdY#Twi!xcIs6<&Q7&p zbSbIQ7)pHlwu|=ZyX=|;^O2+Asbq*xb-rSqkgJ)WqzDls+a`7E_RmH3*FzKU*Wt4s z5YNy)HX47r+v-#wKFc!IQuZ~+>XKf5Ezz%Mf8MWOg<`94Jf3;t8jEMnc%o-`{~vkg zPv82_d1m3G^nbxK|GMHE2N<6D7@p$!T?uqN{IjFb!O7Ec^*|T=N?K_)Q~&$h;3@X+ z`FDAWxBoRy@pL(${abpS^*a;&eroQ&+3#_`wEFFO{M+dFf!+UZzeoM+e*b>O3HmJ? zY#(0APourO)ZXLrQjrt#QhWasUh0g#yp+putnSM{F}1J`>|>W_?TdXGhyL5CC0q-y z^ig8Z&lKvDFhaC=C8$U5hX+J%j`K&~mv6r(l;(ne!5?Ws!so@=pf`JXl#8VN7%86> zSMeOYzE*am*-u$J5}ZnJ%WwCTJ73D3C*?BZGCyT5I9{1nRfa85M(hG9_FXA71gog$F(!v$32w0MLl^k%O$iDi$mjYSs7f) zjKoCfYq;azp;zc-#&C#D07_JvebwiBP4gD zay~pR$-PuVK}8U=OGbZHlz9fSQNV4iWf(zCacSJ1W0tbthDP;>GzjVC!@PR5Mak2W88 zoiFDl$z7)0C3C0VkuJ<@=f>`C^bhD$96yjP5Gdg>c9sp;oQxhzGF@}pS}L*++_4AWFmkQf>wNYkteXdVjJJYXs#{B2 zE&)Yq2<2qcLQ}gM_MhL`f=~ccUwdwgX5Sh;xnck9opn5Nd4@FdlxXEEx2!nOxu;?O zLY@zikW|~sC&c_?tF@%Rw4YOVSzXy6F0+nI-0wfDLrWS^c3QPJxjL-goK(Iqt-L#} ztWOW+%oD*x#mm@g{so0O7BzHmyjGo;q+OyVtv%wuK&#f0wM+7n*QWV1wGJ)0oyc>T ze>fisYaMyX?L_V%4SP=#n%cOEPH?X!@tt>viSe{u3$)q;ttg3y=L+h@o*K(Iecnzd z8bohSJ-I|FBp)w&tUl&360(t%%{YwK*$!v~TzN>Wi^zg+`eTs7>!v(xcl z!+v+C4EeU|8A;W3Spy~xU?|I(3iajtPpT>BWUu^S@`haKlhdQ{X8DWJQgM>;7C+wP z0ydPF!2zd8n$e_(+pty)2lkOy5Lm-)$y#6^pbYnF##Vht8#h|`fJ3+M&^mYO^R_xM z!Tk6RjIIeUMobmwy2|wME-?vjl8VaT8-R6lZRZZ^YxwoT&WEatzI(o{VSje#Rt}_o zRx3`kou6sthX(jT(_u8v1-oHMkdMT81*|8R4QFIG$lR9Bg=W~X$>d~pi$QOMj-%mT zmX#qLvA>eWR|Vo*{}vz)@PsB0$Mn$dPhmciJ}7W7$v;%1L!NWDYk{zXpos=1kRU>< zu2+~#V?b7wpJQuVD|1tYvMQ+D?I+-BO7INK25Qdad7Hr>s6nz9Kp7=9x@oy`x5H$# zL4svBug}}UAdBVplT)xw01^f|=`-RFI1A+IqU3XJI6VWWHZpo{pnLqnVY%m!<}Ky# zeq0u^7Mq8Ydw^psT zaY|QZB=J{7PZzkvuE2R;2US^z1E6g#u6pw`^`M^G>qLW-z0de-Ryp6HJuEEk#@Sv) z&L;-AbKOsDdQ90H6s&x|?9@CgFD~9Nj87Z(FYVkDc+VcFcQ7=2eLyr@#T{PxMcK5C zLOwW7H21?qF~@4IyY|{^wN6uxGQ}W z|Ia%)lsTUOKTC@pRbtsNfZ&sk9Y_3Y$SbY8@g#Syx`_!aU7ah&jq}BEe=)Ntr^g<& zUgioNmc$xFI!Ntnt*$zK5T@E|w3ut*(yI-@9}|05`Z>7dz3&UXD5%7&7yAL@K;@RQ z6(svj@`YX!XFSdQrJrnv#AaQ0Tg+p}K6u^5y8Qsb{4m-iCah+>Zhi=ZZPZo|AFWl* zj4?_B-0gRr-1D}v=WX?Xj@_qkiETOu?eK_eX|yLMta;2Z}}B}HEXF+fhv%79?U-MA3z>(zn)h{Kdk$u@L3)+>(b zlHHBVFj;ystDM2_HxLq_kSXX1>Y2V^E+aCX0nt>OE%C8SK=2l$mp3z>zXKS@9M=0?ekk%h#3bKp?A zGavy3L;10W{YyIknf*_!DOSF}yg-Up@xs_8$K02~L1wGD9-n&Yj#oev<|519Ni29Xcw4)8@>Mvv&X78Yrbqy6u(;fHv?3)YS4a>-f1>{x_ z6P;^2R~8vlqBpLRFcd*q8%iWapY~aP$g#y<>kSPrcdo0Du4>s#)N0!xF?6p*>sDF| z$CGTj7O-|!(RX_^z$hwfkFJ#zWwlj`Kyc+}c z`2TOtV7|SiRIsx2iKC&MqZO?ES2}AWmu1Aq5)o4O3g4GsfM=-OoSENR1D$rE8Q}Rju z){QHxqtSorru>1adZ>K<tVb5?oAT{v3Lz}tms}nmfS3Np z!9XC5J@pk>HMPGnYv3_n3xALzPbEPlcUAc~EpIoMB<@h>Za3#~SCyX@9lH^jz+JXk z%#)39MpB_+np5Of>Z{6^u`@4I1yVQV4~iL)usOIY-yy##x#b_6m33Bb)w}^!`6*gQ zK~id&Qw4mJLMarArfv9AhG)Xmubr!F)vKy}atdrWKf)R`eoy9;?dF@@OFE6YLbj{& zoyMlHnU>`Yf9R+pY)PO#Qww}b9Oqq-Tq23GJ=&+G;&;(SPCfTld{Kx~xH)Q<40~*O zvt_pTp#X8dNCL=Z95wkpaT-@>v=wG^I7qlYpX?j#@wX6}hET+RqXV4UuX9`^qbzRm z1oiCLlv*~7ty`C9M@{C}IU{Us|HUg7{|||F?H`3>wpfxknfp1Ajo-X#zRpeb*1*GW+i!r41;9crjsYH=izNhIZW z|2&6?GVNrDw{*uyx&5;x>#LQhB^5>4?KO-4PZUujUJh9BSANp!b@jWF82 zY!P9!-<-of)na)W7KD}~y&xeLu78{y3|i-rNn)V;I8L7JT4$FSuU4fm`G@e|Vq8&> z{mv2+~p+rORH9rKokHxdhpb73@81$cQCtcPVAO?4OnUc23A5WIs5bKNxZZBHiS-{^LGW7#+o zOTNjtA-kn_61sBqCi6kQ5|-AHCEpf?Zq9N@fmppA$v5oYv#f=9Ffq}|KKf%zmmzZp zwR~KtXm?YTR*US_ej!3O1nmMEdUz#WdX z&)lLp3tNo3KKMJ@_EsS8Qkinh%_VW4d!CFdw}v3mgb~^1H~oPxhepgv(Tz;e{n5p=Z0_K|K@s( zt0dy5ERwZo*2wb8xgBSpkK?;DShNW~!_8lN9gJNjS_WTfYoR?e(m1mN{Ccv)Bt9(* z>oB!*d$N*yFU5k)8)$IY8ykK+1~)%^IVHmM0CoU9G!;gE4B@W7X0#!RB;*+3{299! ztY@xs9l@?%shl$VzR@`NItpyhjz$iwOwYX>k81!y$1XHCM>fn5GeG-$CZpiVhN)P0 zG3G`Lv+MgiK5>5~0u@=sj?lmb5OcQWOaCypI|lt4ErN}3d&0}Ij5en5i;y`Iqp^v( z(Q_N}e%86yW8YaLH5+e+V|H+mUDr@|XJ=D36ycSL5ZA?f$TO!>lZDOHhP)+GqQ!VO z@SZbp$mzejp>9}bJ-*oX*BkO?bnabz3g9`iys?Ic{bM>CJww3Afz%}jAm)E&ZVK=B zf&~o2-5l;ZE6{obBRR&_ni<6{(UD3#2i&lER(2zNjlC(dwfLd?TF)K>ud#Bk%23CE+%AF?yM`EAlXiyK_e1-jG)M2YH5awBMB|?#8X~|?L z?{kCv0E3t03|8=M+iBeUj6bS=Kv$i{J8CGj9c_$?=Kc))pN|Gx!!=#--xu!%80+O0 ztgKy6?{B_fydVDpRe>m&lE52+DJ}am3pdM020j5R zonR#~u(D(3whibr)V|U`X0?D*Z)l0=HHZEZDyJI{WyxM>#lz7-W-WJ~>`mo&oyoFE zIr$70e&~$+*UqtdOR;V$!1G_UBa(4DEkj&sQK%W=4Vjc;vqTGH&qkY8A8vJsQV;1w zG^S~%_q3zJ@1mZO&fng-7xyYXn}{T7(BLo;Uz)w{SDp8Z%^?Y%ll-SKtOI2*cbHZv zcs0N>m<5$vmYk0D-;x2)hH%s&M7O}cSBuplR7{4o3Fnel<3#TdtJ+8O)?Ri?Pt6p~ zEIaK)MF;ZQ^$j&UzG1E-&$!y2ky&mH1TYhaF!=LS_>{SQsJ-&<@|EuNg@Pg_Aw-eC z`fL3$j1ZQ)^;n~5hY?v2nmi%LN^k|w;d;=9m=ZCIk_hrtVO^ID;#y2_VLd_STi((Z z0{3~{JMX&C8*)5|hM8&bfco}8kqBeu)^!QfBOQJ|m-FW~%GDE}GSjGw>@QA&=nvv$ zMO=DQ_PwfdJaT$$7?x$ZU||bT1fmxv4-P*Lk;Q^Z1bJo=Ex%bdC*}qEV$nZO65Jys zc3l)+I?8{#+<5|wD7Qn2BOa*51GjeBThTKu6%!0(=K+!9&a$_J99LyG>ZRd=;P48@ zep+Z$0KXcK`^{x*gagE617KuN5`GQU7&-}J`}V|^A=IwyL}0X=-^DdvL=e=H7*}Ma z!k%^PE*QBN@14MVo3%iFt~Nf$Svd%z<1wC9QaT%%&>z{kVHn@pCL$PYQQCN;SurP_ zAHs|Xgqpi7WOLs46dxA2o1B4%xagQ{&n#oFbzNS#D9aX=C3*R~{w$uu*Nw;zr4159 zjH@E2tHMut^ddgF^lyBk@ob0Lu>Z6;vyp|6!n`CRG*gOXgszlF_^RA(TXY4EM&w9= z#J>p%dY9p|F^n?4eNDTIvV9&Ulyi5ZqJv{15JlPZr0)qGA8TnRdY|qDT3dkbmB;m z-HYs_dPP{E^l|Kl3Dzm0i9~bUY(4^9XnrgAmR$^u%aN#xo~&`2yOG$-<2B-&xa*b; z;+D%sV+U;Jc>a&$e@kV`Och)xi|Y?kY4|eAzn-?K|=&EL)Yc z3~_#PQWoO2h^ux54LYyneveTL* zJcC4C4zao6Mr84}i-22EW#RgsF5)D$C)@^hpt9)u=wJ#ZpdO470myemf2bMVQ$wS+ z>YeXu2G-Cxeb+g(pv`c+qy=*wgfa@l7vwKn3kUpi}UKkpFH)L)IYGVHe zUp9s#&0ZApvN&9#QpuRrHsIV5_<^&=?||S3FU9mk;^%58TTI}5hKTKXcW%ozTc zq_*-mE4871i6ebv#4O$xX)Q*jR(tf+9Gf%Zj!}mKLXcF5fOF*%hfPkwtgjVD1~jc|}{O^}?^z%@lQW#xnWxFD08B zw8f*R)X9sucIM6 z1?NgU^CJIUB72`Vts(q#>+{ko=~Qau*TB*>dcG-D-0+xulhF{qs%Wd+U%gho86Nqs zlFfVrW*3hJAAG_nq-&#C!^}%{#&E5uY84?>rpgjhAvE`Cgx*>iH=&}6go4oAwfteb zGE$ zgv8C-OQP5DhDcTrDtHlbYd!ea4}%WeREij27vw#Z>!NJB7-e@w_Lt;-NpbJt$o?Yz zOE#Ple_9I0Enk*Y`Ob!9h~OGc!r3WQ_=>64XQ=Q|^Hvt>*e%rQdG!ea%5N3)z50YD zD>|0Fhvk1LZ+v92EA2kk!o>Ueb4%#ahVb;_wEN}nHTNT86uhDgbsS7GmnS2OZ*m&K zda>vJtVnxNt6VxLShAI6Lp3iHZ)VNB*$^%&Mm#EMk|mQ?-4GsM9PV95a7m2#;&d0V zw=74#Z+>_?v!>Yd=s5Yg=23Z8^6>8(!apwdar1eRX`dJPkAfxBmKVIsR=ie?V|(_*RFwIqX;JtHUb zhoT>4Me2%J#0QJdxJ+7ot2pJpTluXk`B@s6XaQZ@DDb0+^tm2n`Ldt~C9>EYS*$-T zOG?@lyu3>VS3|Fq@^6*wkP>nX9UA(_3-J)5lrMXWFLXw=+)1)v*VtNOvqs)3lCy{r z!xU)g*JKS>&18h8+r@f!oWM(?jG@ET@br(1(=r;KW^^;sJll^LOJ^Y*VJ~_jPZ&p1)Ru~QPsE;YZQz;2Bep z8#%<~Z03S1mt#WYAl^}XL-v!<6OkP%)qu$_z$sd421QKF5p#qFHq^Ikjd~gJQui5 zs}S}Q_2J3O-iO-|PEH|Yr#e@JW9;c(!X9@lIfySGo6W(mgt|i43a^4261FDzw3<6P zhYLCO+KDtb?jA0PgmI6iq$Ah?Pj(Z0Rp9Gn|6p>Hn17)|(Gh{K?KQeI>+}!^!f}Op zKUK)~oGT}udLmSLBAknLHm;)Cc#J8jFU1r)nwN&+Z6Kxuas(nm7*ZY!x4okx;MX~I> z@=d*Tr(RJfaCq&+J~@4a%_vAMG$N0COPi^b@pIV;jlYd5_0ksIeyz>ChK~e0MR3U% zh42d=fPv=Ouz}V*t z{W%r5#IHHD@qrn52*7z?RHkHT{PtZEY^oC}gEa&aHTqg6jMuL|Jk^RLAMnmH?+eZd=2Tf7ba~ zSq@@gehhAvoPGJ90%Q)h81~wN&@W=5daMY)58Hvl85O~O=G%bGsk@xC6e99S(XR_o z9b1p4DBEGqt<-NE*ow_o*MK*UF1;cm<}-2{V`bI+0hC0Jv>%f$_pszD(hBDd%7Zc+?v{o1TRPpf(K-g~^N^qr$2kpygu3ap9_2Mxv%(Z@Nid54n4dddw z)k+)78E)aiy!nu)#jZ=Y-ll#p-_I`@B0>wkRyJ6iyiSja^$;?Q_@;yk5t2qE{puXX zcegk6n3%Y{!hd+F#jb#KS1v{thHlU!ttG=EtwnCQ5u;qpUqd(4aHgDby(7|9)D~%n z0pKq0aHPGsU9KedNE!@%Yow(J77@{3V6TPy>?&^J-di5oE&L@nyNll7L9m>5`4yjG z6c3`=TO{3tY`Z+6nKa`nZU=%N&5q12;g1LvEk(uCBhyP}Oy}-)SERAXn;X$f__Nrh zWkza>w46vy$?ZA7-UgJfMT$yx!$LLjzb;}bxkH1+m|y%l?aqM7$|!m(@S6KFhh?=72Uxa&qY+is!x?MnKAQOAp^sV*ytR~rhoD@63}Q>kcKN(mt^u-@ zKU#}OL(Y{4WFCbIAJ8`9GHdg=o1ORFr*P=1Q1hXy=)v~*{d_@w*D%&(xttio7;5vm zFCVR*yR>%tG>E4a zZC$Qw0V3T-`2xU_ntE$^Olq)>m};3?g1aMXv4;dt!oE!LTHL3sNqB)cA8_Yr2LHHR zXoH3b^n(1oVU7GPeL()sE0@17N;l==rP*A-O{iQ1k*rWF;F({Cy57_9NRRe?`#(1B6Ho+=f^nlo1SZ_I6hriq-Z^v41 zDXU0VF_rAm>=>;rQDJQfZlrTcyaeJw@mW zE$)^tZ|nII+#oNgFMm15!knH8N3K45nY;Kp~sb?6iviqzR-`4h{#)|hc3Kp`8g2nF;zn4Q6X~qfDn54LoOc^ zS}%IW#bYpUQ`^AW@z(DPYV|H2Q|hO)}^(%mFRp~qUV zq8)pO!qBKEG;(%WPrl@dk;JPmE;Pf=)nR#5Q5i4clE;Dg-Iv@Mnu9=jQbN7TM|)Ip zm`n3U_-dm18EL&TnQUDWUx2OsD(_ytq~es743aQ!~uDPiKQKl?UIc5`S4kF4#U$M6HoW@ z^vSH+M9aO!rypBm?y-;N_j@Ea0?lj%3U`U>ES~7tr{#%u`+fVuai6ZSp86AzchJ;d zvs&fpQrE5OY2K2IPq_Jsjq|OH_XV2P;`_VcEYWY=+r@H&%Rt59`e_#r(BSfIp&t*W@nv2n;k;0YQm$SmvRiCO6W314>YZx7MPt>WfsY5Tg)a@>IZ-r-B5j zYqq)*q)Ey7AT3Pap0s)|eUpy`0|HyQ1>3y}Xv(5)zDtktQ9Ri`I6K?2{0yXSkI^B)vtBi4 zF`~#bvYCq}&fn%krN05t@ujKLi;D$ zj!&_JL_mf7dX3kFswaz+6_r9{3+*3ZrOdGcbz}Zb-GL)X{&NZ4wLvhb<1eFU@ABH; zFdU}`1uUiRl2DIXm|_OpTH?)a7DYz5NXJ~|jq5{r7k zEwS`ND%t7r4Dv9m4=p(CCE^|m1I7*Oh3T~53H_9l&?fU#)wr{A49_%!gP10BB9M0E zCnp;wo)J@%lvQE*z5(Uk12m`SHO%jKdO{QN>3AFc+sc;#))y*G@q}(m)hZ6j_&Y-l zJS=d3>I^-}g}0PAaZS2?m-*2))zQULxw4Kdb5`dkg{FKhmgI4#3u5PZvOm*0FtAB3 zJ6WrCWc7Gv#J|9@=zF0l4$awqnPd&jL zPiWC$Ek<;~NHT^fD?f2oUdal;Cw?R@0av&;tr&(@%!p*GNN`6Warpg-;bDr$eWYxn z%8O@ZFc&vid;+M-eZ;wHg9uDCw3w%G4GdKOiG(e>dhH30$DZ=tZJR1Yjbp3Ny%q=D zp2ZdVV^-DQ+3y$UvrJ~(pNO*YgYy!?`0PAUr2KCyKV$cD9EpY|r@&|>6W%zPElL^G z?cwOH07Y9Fx(aDU{FmmM3z`(tXLU@%(U?_)785qhB(n4u=&An~;`C4$m*jn8PNiRioa!ypfoq~;C zTZ9{K#LnDTx?d07FP-z*KNQuK&Y5saes>H=a+N=bW;n8fNsQ?*YBid)YEPD3jG&zl zha~{gmH4!*yG9vr`Lc+|kFKb*1!p6)MYts;ckaab2sa}!cUo0tITFq5q}-%b$}uOE z|4nwg7F?8ORbffmp(c5f zQrWRH{iBunh?>shcPb^ZXeq{@$)rydHm zQadq3mvJa;Z1ROxN^3;vlZvKGVoNk(;e9DSyV!7>c|@itFs^iM+by^pwE6#Ov!O3sB^#NT(uBHsP?3ZM^Q_* zeMMCW2>?wrFFz=0Yi2G1UCR#z7xd9w!PK?-5$^<9TIk1LXVQ-^JQ9=ZN_?+W_i&zw z7u5n=IF1k$h0-d_Mo6K(J#Zw=f4jF-FfFz7rF6&mg2Gm7!|yh)Ck(@}{Z_qX74-I7 zVZvMs_t+1)X91MAbP{MAo+}#{{fC5jCSZNA;%trmIdItSTs1||z_98jCM+@M^Ne2G zn@Y#v$i9F_-F?Gbkv;S3v8zkv_~kfMH42dJOH14X}5=-#?uHGyar&Vu6~F}nz82mpobM>@u`(-J0d+jaLlckIV^@_Os-K#Mi#O*K~5b3)SF2j#4&a(7Sf zs8|DVcu>gB?_B9jW?8<>1GbVtId8nA{LN)~2Y$yqAwB40JQK%UT$EQoAlLRC=E5X6 zrNA?CE5)k#Ep%^MNJrJ@zL1dvZb;2#-ad}`D)i-d5Fkn1A)i7+f-g!TzLzE?4H7>- zF_*`S(l~ZZ*ms9YZcn~)R$ePrk?Ku~^uR25bl!WJyy}73St*J85^zKMa>!()8kA<5 zgfeAf+HF>{7WGn25HT`2Nl&u6Ic9ad0qLbMHP6#o31$D9+TB%0r-X)MjHRkHXW4{% zRJcf>Mt7@M{s{??LN$VD*wZ+M@K!dbjg4bSEal=DBFnCzC(3ade05(OkwFj~sf2XL zMH4|FEzGoCC}4&R*%r;2gy4W^j0-$d#JJdk#&mvoFg|Ep!&NX)!r$nifU$;FlVmmu z%K`&DR}9qVvm~Z#Bo(`TqnJc(n}vdM zwivM9>!Al{Q%&E`z5=stYlP^+V5r#Yxr(g>6>&~Z4?ZXq#TTp)8sQ5nD#J1;8^DpX zEy_vt%~_fBGUeb^hp0tukSQJUYtEBXK966I=X+3~hc?K9;y9Y~#tk}`wz4a@8ZTG= z!Cd94XW4Qrou}x6|Kh}?W9<$T-xqjaD^L`!OQ*(KtPGl9WIDr}JFDJMhzkaUUo#Zy zf&mxT7J1nfrzJgSt;_;U$FP^-h*^;?nz4ee3e#5$Le0YIaBPgpY}S|$K0*dl#fRQ* z)`3D~hFTdBkatV(L2^za-j6y%CMT{8oib!pb4$e{pxDv*;bkl(sEoY@>r->rVOmc5 zl{L$hqy)K3mzG%-QWzi_GK9yide4qtOid z1Oh*S&McPwTC4T%^lg15UF>ZgNmN*$G}U@<&n*b(FE}l^T5Z>%ly{fX3Gh6jLYAWc zwD{gF-wZXkUT}(RV6xHJ66++iTGp7nXSwW@wyP8*BK)0vk&u!nv*rSsgr(%CCwJ@?MVl3P&XqUPoQg#fcv|+dBaoP2 zg~D>MLQu$EIX_iO;^z1~p2rvtOdJXKm?`WvW4ACtzZ-Z)RiGw5tesVdVb!5_fKv26RhBa(w0BY-km{0 z-x-RqllwdSR|*XFN7%rC&%Ka5!FSl37xNtRC=#F} zViZoeW>@MRgE<0=)oKJ9jwa}q(bpC|vsWE~ExIq1OR`W7Te}rznPE#vQ49sfW=~%odqrM zi$X$K%@Y)Ru?Q#KCUZR6`e>?Ly`x$!`_7!$<~i;o3pUc^W}fTWrZ4*|J@}k7DlF_d zOevXtNG!76tfF=^ zCaR-Jb-BEJ|LBh^yiC5yi~g)7-S zY>Uz?U)k?7#iN6*>$gzQQerSR8e}t$MWT&@857=yr{D2fDG<)K=H016!?0x{geSjx z@P}%~^ituzyLgW|n36?>OpHhF&ZMGFtlMk#bHyS_by)Bw@{f|&CBnc_ABZak2646c zcbGGGHtaiaev45dj9tS%aTcr)7NudITeWJPdVr_ab{}sZuSD4oyp92qoc$CC8X!75yiaI)w_14}GCB(P3L6 zZMG%##HWNeIH`+aBzg8xGh-AhA~7>+IrtF}HzPq|tQTt#T=ouuVi0k3LOC#Vi!~IA zTkJO!oS46J^hiMWIdI!wLgHEU8Fz~i3u*;l@A&uA6>-{^S1eZ~R3f7dM@lrb28Z12xxEhKth z$FUYGV2%vVXruNxegD7cH@r(Gofr7W3kC%2fENTP>sDXz7r2+KM>Jm4H3z5lIhzM0 z6E0w2qal2v;NnlxZO&1-qfOYA^d+FJ06J_~hK zmP}^ZQeXLwWs0(fdrVP^)ZtNkUz#Q%Q-r7TOWZ6reKO|NN>C%V%HV^tnW%aZa)hkO zUaEM;KCb^Y({rIpk1S5G7|TxTSyH*Y;oL~hCfM-ykQgT@428-@&aB2@Qzo`pBC>LX ze&k~DNE{sc+^%T26%yB3*$Vi+P}W6-?vEGFoDy=}%02zr=5;p^K1Vn@ObT^pexsoz z8?kt2hM)+jg;jz5h`@#rFN}C5;r+>G9ic`d z?o}a0e$p;s%|G_KJN(lv4$lIZq&S!?#Mfw|D}cWQ0vwO%o7t8t;}6q+icr^duQ5r* zgTri-)b`tBEwThMB{c6a^7GOeEqJQ2T45a4UH#RkHqh;Kt_a8Un3(2?%H+l59!8i6DH~3?n z_%dndSfhp{af?i+u44y`k(L3QObPRUKUL%9b2GI5%r<3TDI*~J8qQtu5zyl!@J+}! zAQ{49=ftwqyWqI5$23a?b$p({}*WUO%(OhTW?<-=Dzxbwhfv-p<03L+SB+ z;bqIgYE}$)VeKU9qqTNapxqp^L{Tgi_0c8jA!Iz}?=Ew$=qcn3S*il0#&ax?T+{zZn(**(~aT<%hknwDJZ46LTeT zC(fh~f)AE9z0Nc%jztBNVwZU%6j7R&(t?V=pKYN+Z~!W#IU-{#KE6h^{r18H9_j}5 z;Gu8Zb!gdpnjL(CW*>=g#DIX!LgM zf%^7!N2b-+jHCOS8E>uuJAC?WMG{hs=ryB!l&ri_y?dH#+;DN4K*(G{xpdOo+D({S$sk)m2?_dR?J166Y zTW|jG07Ee5EZrW}lV)L;@I`dJ#8&TB-1o@qz}II@O6!HCYz<8Iw+h^KccGA|i{>Hn z6&dx9XOl zs}($}pVWw&4$aT?H=bo9>WX>EHd{RRuF`L2!gx$)!I3?hv%zj+X=z4S4xgs`N*m3y zr8ak;+JvX4vJ0uqG@GQR1bvad=tgk{>qbrFsj0DH`j|U2`V>xldldeq6ezHUp(DS@ z=|8*t&Y#-+Bb6nB8IgHyOvQByi{?Qv4f;jV6cPi7>|GegaE8r1<@M6^d>rSw>n9ym1m zj`KtbE($i8p|{XR;$C|29GhE6UlCQDA@Xj{tO!byX1R(!PJV}zO zb5qlDt28KDv$@vJ!BuD`%cEYZP8aY4lU(f`1%oonhIdRJlu>q)I+nuyrP=)cX;Rl_ zrLL8&_NvoG*x;-INdsl{yzwGus3eXFdcMazC{;2+d*@3@u{B@H;2UJV#OX5Q+k2jw ziOLm(sG%?q@uAl^N%RS&yXEXG{2trLE^|F|M-UO5lnW~wTn;5cQ`vJeD`J$)DD9@U z3DT6b({C(jZXL^g0-Jd~`=4%{1UB|)%Atp3@L3o6UQA?+3~KqWC@LkuJVDDC6u`R%j>8)z^ph+@?G@(63d|aX zK+UJt1n6oh8oSIKz_ylQky?hh?>C#9c}N+#oY<#~DJv^9{1Y`ZIys<6;0#Wh9lUAu z%Du}kHr@sMQe=<<{>s_hGFI}Wllq`vvxA;J4#t7J=*uuSRUg02s{~A{el#VravziP z|KOy#!JCNHy8I@XI#wBi;9Nb(0ZR`ub>m%-ENx7)TAfS1Oc5fOG@IpCv+^kD8KMw< zYy6QQmS=}`f*|?-9*1SRyet);S1e{#r3bCg89@gT)K)NpxcHw)6)BeV6| zk|>@<&SK5yrK({5eA#{-dT`8$ZaF#iJKUAIcljqSnw9P>8ol314J z&56q)X0f{5MIcN0{7%(xc8u-j?%vBwA&6=p*=}|y5kNi=xa0E&kY}|u$VYK~1G^im zBIVY@GmyhLZh(*XDpzGWF$^@t7`F0>r`!CUiOtLWHCp?`jqER<|8yj$h<;Y3@cV2q zpA8fFrUb>H9A+y6OXY_-fr5SZ4Rxs8i>Etz>s(i>yX*a~qX6b`Q{vclUv(C;(#D3*7+*2_5 zY6^x%4B^Lo2a?XCfn4{nfO3|v93^>igsLrt`~^Ja!Ph+xM)H8jF^cmL25X^cm?{WO zw)i>$yUFiKyfuq>W$`7E?u$~k=49EHj`Lq)bzTNa_%x4nB8FmV8#mMB=JWW?f6L7W z@tfapBdxuz?v>muBde8<&t)LXPUYhAvUL8A#G>H=KK42bYNHOkl37#;>T2MH@^OVu z)BL^cX-cYnj~azjW1dZ~lO9ZCcy_~)Y|>IE$^p=L+8_wH@hX?N@D7FxS0CPdRXkzoo!W21@?QK zS^IVDC}44Cv-Jm7hTuOea`d{2A6(Lhfo2k5M8}seO?CJOIM*#05=B|L0Bl{CWPZpn z2Ud)dBY6~VD&LtNVvr0c3oSM?H8>fIx_-o?ht|byLe%j~=~Wr#6H?WkRCT7WbaI9$ zV`co(ea2MAZzh-@lE9VJXHDn(q|x6%6!7E$)SBOuYke$adZ-T>4Hp^X_cM7&AbnA;0WLb zz~4;dg;z;0H(&8260lkAh3^nX!oqEjn5wV>Jv$CwESb2JaTCqQ8?vpB>1jkW4#C;N z&^Kc{JwDaktJYS}gFz}^d7m!^n;YZ{c4XPx;EpgBR-@bl2|Xs}lCa^zXPgKg;hi~x z?l$Tt6leJDM&2mBl+FBg^FFGdFl&@dt52+H*Xe$4pY|k!@XJl6BFD5lev2*xX?Xldz(huX-f>LF-r+TeMxUnDZ$o zebKY&1`IJ*%_Ln&XSpg{*Vb0URg$E4ZO8!@b~nO7=S2d@F)s~#V$HW!H& zgce90`0-7-&#q;7?J!O)y3^Mpaod6@WP_TkzNV4)tY2%tlnxPxCNw?Q9Q%n3|J7{O zm{rMdU^a7+Gz^<_M^nT$CkBtnL`c|P$7#KmDNLbJl%c+lj@0p**J^Spz&bF0i?2aV zEJo?1$;`rCXzBd_=$%tSM=ZM8s}qt6Q3p{W8okR&a+wi@{aKu`L8{S%cgAaDIb@gVJ%RKVFJeHLh%y(_d&!9-pZXX~2_*`1T#M=SH=5q>8MXSmL%TR%|*QJ&w z^8zLLH<_8|%RLosn*4LyrpZOZVu@B>&^-h7hL$5eo8)Z7BN(ix zHVozw$SJ*2L&%iV7FNIwqsn9g;7>cl6l4v3$#I5 z@++KDldm*yBJ?{4md9>BZCYIr{z8<$40RVs)M|=|OQ23868Ip!*m3y?}#r*QS<31D79+ppiTKqGULkm9I)uYo90{Na+(^K zz+@&*@Hy!@vM0Ej2d?IUt9fa9@P_HZ=VXfW1bjWWhRfh{wfrS1gF@0gko25F(sP0& z<9>M=G~};wztkBtRL#cyYq-&ahWr@nSE>7Vlx{<`w(T z6cru4HKx7$W1NKrvoaSlH%K+i4cV?hs#YUNQTy-zq3lfHqpI%3Kgnd7EI0!M4T?Hy z)F7x)s0IQ$H<^$bNFaa+?z9oAVk^pwtddD5w3*ya)z?M)y7}7L`r22Y-4J9++Z!yPHVj@{js&odvhZ<%j#oKK0*pi$4+m5D_httj54KV>Qd6tmBb1b{_eAM^6n=RhLi1x)@ti39$IX zWDfY-)&%&L?H7)oniVdGql7zYoj)=Lsn_}=!{e^k`qN?k*>C+hWc^XrpM(0(nst+`gufQjiTHjcMYg6l~oegX0kRqwYYp)Gg^zGbG1@_X= z1@bdVe#S-L&JMYvM<<2G5&Q&$TPHsO`SHpRNt@$F1r-EMCMi1@b45N|(8K*)yi1YyXPu%9SU&-}IN}5DiPqo-592s|K3@g>QAxjL6c`fO$Z!tXLz< zmn^)Fq+ot?2RXN+2i-7wb?O_imj%LJ+DMct6C_QT3t%r06SP=Os8e##D`fDIzbkzugLr6}{#~ShSLxq5@*BPctU$`HDGgNhhVmj!1wF|^0p451USN0FaQQ+j z0_H>vNu{A1laJ~z$ylfgLwzMLNRX{b{czOM~p5)oo&menGx`f%$AOv1YvxenUak)Jen@yCLtmX~b7h(8b0Db`VHt{)WYHS!Sx@c;6i z?n$otJyUhKCg3Af-dyZUb+1o7t<}yxwMh#~I82$1gvf&Sy3@G4qn)6;U97Um(cCa@ z)LwN!Q`_SgM`Sr@R1`VN!I#rngTB;SOUnWoJ{{J6k%TT@UuvCJGh;(Bi(8IL>qatW z7JcrAdgc*8AB<1$N;VpYYh0xFt|h?DdLTU0t_0g|kw&=*_&ZU!hJn|~nuAHK$H{RRTH|c@Fzer~mY;UGbuTnR84Vk-cn7NS?u?)9BPO-KjBrsk3;fFu)z|HmVN0zjQZO z29R}xOM)X1Y>0hbAegKmS42o&JYs{E7jl_AO%Af0$cx8DUdW{(Fi*-NmTumz(G^## zn6d7}8i-K0T#z;$L&!QAkv)&YHw)8JIL5TFoMG3y5pfs9i+ywB(|grh{Xzg<00@&s z_+0EE`@lG+0z4}jXRRCQNGtGy4tau1#DRK{3Vsh~Kku4fRvM5(VUZ@`GixX0@0F4CI*9wjyyiNjsP zSxYX>tZ&C(xP2A1qEMGAb8HFNcgpsA?FTp|)LNd2*#Y9+5t^wDTzj-1ELq8uu$I?F zmfxdxGL+GnBJB z2Si>rh*Z>2;G`$By2NnK^$v4vmBr+Qp9mk&c8B(A_J1)K7&wkVil)}b7jdxj=p`Y5 zKZ`aHY6R}G*fiXA3wS8gpw6f_4QnlPq$YSj{yo-Z;j~w2YjQ*UdRUmXpK)Z0eqRVa#_@hF3=uUhQ6haky~mB|S@hDery6c|f^fZ5E@hQogq3Y#6O zFe*2$3L_o%sjfeX>>~!I8dTq*9KbUo)I*D0q?;m%w3LW;G}c!Q-t%@~#tn^OSpG)j zo9CdsBKx3HH_~&tOg>@D0QE%HT2fvlSm0HE)DhmEVC;c5N})(=WnrbL2-nEZZ26fY z%EClZ7T5_729#rB*ejC5hfwh3`S#6Aviw<(`px%P=CbDXjbCWo!Q-<}Xtc|fS=|2)D6?1q&;1o+j^2VW(ed=D8k7k52H@}Y_&LY##b_@O^dZ?E5SgY>VZ%gHt zP?WhD8WP2VNPvbl7L{v&uLz~?k6!?PXE80LG$`fh9l5zH^?~_uF zKIL@hob5TBbGAENtP6*7H8TPMG;?{TfrzsP=<_#E+C}z>47ywYdXhd$W-l?#5iLMh z@qJlhg6^elgUbrW*iVopep8kfPhvi=v8^0{B!a&eoI@WK z-Id7Ny{JT}TR-8Qs7O}CnpT!J>t9Rps?pce_3!!o79wDwM7g)L@}1OF7$l`VhRdAf zYP#S_uG9!V>!*T)VEPTxd%0NojvSY{p^!bWPkH$^$uW>~3klfd*r(2N`ILl192k|H ztZSVg&)KPqovyzw8^AiWpu=hsiE1~kPE_~qvnq#Yox~2tjB{#;Hpd#J)6n+bBb}C} zeMj6|Z@blR{xkY!sS!O~8kjLNbcIp%(S4WUVs1AIjMi?pnVQ)7SkGjwV27Jt-(}FH z1HQtYZAJmv!J<`;@NV&WXUDDza43$R9kx5_3DWLf*%=A#kf}?Fc{iqHJiB9vaYw~M zZuVgl&r+Y!b4^TZPbgs_xL$dg{3o(um4lDMmzveHtbjPe;bzoT-glN+hY|UfQXNB% z5>BQh3X&sYN>?DO&O53){7Tx)ZTynBI@Ysg^EQpupbvhZ)kb?`LFDykjkd;uc4LKc zQKvDpb1k-`TO+Ucl$93l5Ctje7Td+lz2W@&Sj&E96e|FuUFb0obBHdDzU{?8lehvi zKm9++{K$Ir1tZP>@?klqW>k8s!C=!)$2`P<)@APou6s8B;#6YI_W zD6DRG>o+Ohe$yRTsU**iuYGe-J8a?BGOr`DE4!`X4zaHi{@OjK2zw_!FG_=oLpur@+J$Vc!ET}}Aij1MFvTPzY-b+qCzC<5*K z0h2V*&ttlf4`7$|@mPebpjjvzFZ?V6NCnciE}Wc>L98@ffKZT&TAe&USk-or(qc}8 z^hD%ZUu6YpB*vpcz77)SQq`uUT!-L))mWm)^?Ty^9_*0kd{6lnx#m%C#v{4r(O||S zx#p4JTRT7)+=Pc*i3$bgV%BO5{^AM(%t_xJ{lZ+Jo>KtMHvAT643+$5_ zoFof6zI1f}a8~sR?1icbI0;e%_Fy8D@s$W2fX)PBKai`)yaJy!Z!+mZJ5ClK7{JY= z2ZgqOB>8zi+M6~-A}CR%CR?WmdLz5C#IRWoq7o&y zw)b2|9I zVPuvy8fIo-f+l7yf0i?RTIBtFqis>a;T_&k%IG1>OR=tG(x8;+h}s`28d_{sgPWJho zUh2#ddG9d#>`|36&S+T~u-$TqlJ)W5M)U`$FMHJK(v$dapWun6`}(15t>#obRgf=> zJl?@ePW56%zSv#60`|A3J_fr`GZF52E#yXr9KNU@%W-;G1= zG`C@9bL(5wwS2Hqy@%&QJS8~9S`FZb&g5(7&m@>+T*`x;1*DJ8Vm zJg!G5qPtTU+ahl$7?e2oEeEBdk?J?-kJ(K?hjqHIJ0(O#^7BTYt4N!e5>;@A6X|3i z`ojmPjv)~*{=+uw@;xpe(U;L5K4$+FEOc~NuW)j#&uVpto?PttaZR@Z(VxofQ46%M zKM?y$hup-z(rf)0if8q?pACg(JiXF7x%jhUAgH|4^W(d{G0cRZ~qCXJ*d^xY{ zyxnyxp`qGOmZFY{70l1^v|rni-rFvo7WGHw-g47IqzAbXVm*{2f3fBC%M|NlF*Lm$ z&1FS)S-6_{5OQJss?_*(hb9`e=k5@Sdv4b#qJfh4V1xlk;rdvtgG>Gh0Qe&S_&>fC zprq;2Cp1A#2dxSPV%!PD2ui>WS|1CRccpCY*Oj7;tz^-khR<3UV+BV_wy4N<8JYHAt43-8ze9gVpxQ%VB#0~}b zD$cPEcB(wtoH!C>6hyrLaDRPON6_8SQ9lLhW#BXo;(ANb1f(;Lh}4pCWP?mHQJYRF24EI#Mrg5}q^tOiH9t1Gh zg?c%YHn2A#8C*LPd6Kwkq_=?&59o-f-T=pq*H7udxIk}fJjsi&LwEvCG{snrSBbwz zqnPw%t$1NksW0Ur0TJ|EV`(}f5=aXp|3qGiyN3A??X)vgsNQ6_iCs)>z`Vm7h_CUu zw{EyS_)H4!;u__w)xd{u1~4cSnzNUb=mh8}83UqullNx#Xu@07sBRG_+)(Jg~ezrVC#Rk;e52V6Abr_Qt zva9&jWD3ottJPgVE?_>ijhWPJPy?bu`g%)ZG4Dp`|0olVrHXy;0YSOwqw>cAhs+j< zU*Z&?1$$KBb$oHP0qu)hlJ>>zQ58Iw_lNAiUL76?D>|f>;0zWckP}esQTg_Z*!S9` z9p@qSPtlm*T3lYBUw%`VjPCdzHT7M2`OU{ho}8|qd{4@Vb4;7urQ(^|w6{n7%<6$u z_nncNpVyb)e1xy0@MTs*Qmx#cJJPOZ$$QjqMhfU{kbBe*^^-kn!{Z3c;alNM@a6Q< zPSZ$P-x)H}QH=KMgyv5c)m+kKR~p-HrCBwXZTF%oWT@z}e>7R>Z>w7&aV`sZm7=^U z8ks^Z**^U&GfwZ{b8lU|!q>L(^J1Or_NrCAmj{}TBwBb!VOR1_p{;k& zf9~>=H^Un-UgRYwkp@*NFt$Ml9mz4=M)WOwme%&EHy}KLrlDk&x=+hf@ZBNxeJ!^T z=HbMtADib*o=HChHxM8h){1G`u-d0CK^CRFbZR6}CcT7?TY91!3HLZ6%x*wEL&NT^ zb5^*2)V1dCC#=3tq{r^9caS*-w7sWPdu{@qZ=$Ij4HP8;o$uyAVg4D}@Wrdvj>ii2 z#phl>^5Fq!k39ZkvM}&JLcaLd9FSw@`<2LDfhmUqRsYzW7inJMVq=K>!j%Wqu&8O% z1fg^@3_SuJ`|w{ZW;o5#(g4;qVN!55cLPj|oHq-gPrUqOf+}lV$DS-KjcmAsjrGD& z(Y1udh_ZxQAji+ByO7xBZWP`|HmuMCH4m)KRsW)QHjC?1-(VQqBlJ+P=PPm}@|E0d zkO7*R(n2{Oj?m7?#+8n?#jC&r_LDqF)5%=*Wqc&vHLEgZkdggwDD66ktqxTR32?ZB zW7+TJ_+^1A|E@-oSTlp%ryNyH2ZELCj#n!>=tL~vitM#>H?W3$ZPT*?!*$?78exRK z#3!6{Hu1Zw83EurUVgNK(kWC*Ay7%(`d^|Nz!~D7$@|{8o zVu95`vrWjZ4k@vMW^~>e)$t2~5>pw!*QMido{Q|t(LpgT94@N^X1o1ad|nogy4aWG zwk=Q?J$CA*r%%9GYi{eCb_C+NTmLdN+;UWA;l3%x;a10M^^+YrMB@lZnD6+6&z?p1 zWxjv>1Nso3a1-~*cjua|9UX_t9W6(_@+s!dAm+6R0bZj1sC81-LJK=~LsxmgXwms0 zLX)&X_*DJt!63|z8Hy8s(ZtlS^`HW5K*k7AVkg7YjL;*!{25iET+2?rf$vMPd6ib`f;T(t_-jA$?dl=E zIB{N~ot4_+*r$H=bNP6FqxKgMsinl5aw&#If@aKhp5!7c)JW`x2z{{`?RC}``p5>C zH%x@XwT<=WF70FLQ|~clNz#VTY&TqO)!-T;Vsu@pV>6e1>MkL3#9<$@C$lF57gK$- z`Ts&6Ffhq}l+E5c(3z#U&?gps);sS8Gkf ztQwJ3qo4CIt)HuK#Io)DVbwk`y0WL*D~J`V&hf{6&KM4d*xcnzUEdk3xYPer0KGV1 zJmrfc+341_C`kk1m#ywNfKlsD+M;0kP4qK*I;$@CGr;)3jI2{-EyH-O#9Vjo$Y(X!E6iwAMZ6uzf zg47T3+2a6&l>*XyNoCOv%f;7Vx`J_I7%RL?U;_r&6Q^t!6i}ut`f)}0Y#_SlbZd4l zWA>10<6}DHf!hx$KBCpzK6R>oMRZqu!cXneP97x>2Aa^s$6RyqxsLW?*Wpf2I5%2# zNq81!KBoIl==Z0^qv>|1lJUcxS)rL$1ylY%D)`5f)~Kw2r}u;_ne!kY*OYnLAf!65 z^NTfhR%BCIxijnzfPOf)^0u7|k|jNQ3#^xuoyX>Fll(P;!aiAH0c~nzHY%{Y8`eAM z$3zQc_X74b-5(_jo0ExVdQrB1LHBiMmX1QR1t&$bYBg04BMDy`P*e4H3+TtlI^^!8 z>+plEGJG}=#!%L0hdS^p1>*C;N^F*-m#t#=v&fomKg2Q931HLF(S5%i&EcpyR&R_x zpdK9(+ya|;LPnNg3~MHsCfx{{kUC9I@DoB$L_54gdeWOgPc-?u5lER%@*=rg3xF?~ zTZRhVttP8CIyA=J`XzmF6Islm*ZPA?Y4y`0&xgOY=03Sx(C!N&NK|!)7h6d5S7d~f zR|H^3E%Gb37iww(UDx0AsheG1;o=?#r&09c3w#$6Ot~--#3bD})W)wv8)s0f|AZGzXv8GNw*AW}f7`sl@ z%SSefW<_83sA<45&{TBTKZEm}a-*Gt$-L+;Z#1z~gG^hw#qcpQR#{am{mDH zs|93t$w4uWVRAuLSViY&`#3I1y(D; zre599VgKYT=y+df8fTxybAL18Y=<~2hx6Uv+My1MDkQ+0d>rsP-^y_wNw(0-`}pV~ zK9Vl>XwB)859QB6IX&{&}-F>-VnuGD4&3(7J#Bj&dX_8WeGdwRcNIpUJK zS70(|ZEpNGi~}fg1X-OGAPrD?V9KA}&%iVKRi#)Zh6iL{@Rs4`w>W z_GpFw(?Q~!zm(1o_rNuWotqvtT0S0zQ~=h-5{=3}_xCx3RNWy$n#d)h+iP2u=nG8) zfyr|r37c#`{;2)TtLgkYEQ8DK7)JAbQmtF-Y$_cbO?WMoIhh>x!4uNK*!ZfK+^wy+ zAnW7j|L**A9puMyw;ts_dK7Z|s=k2SzQ6^bh#tK$G*j&qTa*ZR8El5Tld_q(-AqE# z3M=#f`m!>$aPrk+`En>$6&+sLyef1{6otBVFSLf^>_S&ZhsT6w#_RqR9h$keB=FQZ zz?Ofg!awSCf9ZBz>a(Oi8vb1P3p(;AA!oikiy7XLn8y`EQO7`>XN7(zr2MnRawT?D zb0C`dqPz8ME~5#;Rowa_+ubS?sPikmle+kWzTj1lTpY;`UBrQa%<+%M={aVv|21Cd zRki}EK&($~WG$IPi6M$>1~D99mOmXJ{r@fV#VNkA@zsa@=VZCutzFXU(ZbM`(W7HR zmw(!dj5j|5I?fNvb?I%N71*@*e5tb99$9UuDl0(E{cX9yNfd$tBOqK7(ZO zvt#5>u7=*HZMM~JR>rN>D@dA4ZNNxr3Jz|GYBJNOZsWf8g!cO~Xr#$^cn++r% zsqt>=ejh^eyBh#aAiCTIPtJmpUhckMcD|u%>YLVXxrq*)+q~A@`V>ooYw)_mdRh=V zoBP6$&xrf}iHdu#D7s@pm+|X$Z&|IqM<>G;W@r=_MNjNgXE6LkJ{7BiUsyAqI6~i0 zpf7Z{vTabV@(A{##HWRK$A4KBMUP(W-g4>*ABvQxsldskyjJ?KrUeS87+B7&W6-Idy{e7HaNG$4@3qYr&t)dA<&}ohK^{aqu1eJK z_R}@<)_)$?Okt`nP2xLdCqDetUH;DTbv=XKT6g&j>GI?JY@cO!`A59cU4Bh>c~;_q zPurGwP%!FUp)u+D3%m!q2v45|_#@Z{uS}nOJ&XQ6Rog^C_%$!ssx9e;b%nLVY;xr zK&;29LHs08WI|YS!X=S)g^qjKxZo?y6>h5?0Nc)^N68JJZX(Z;=3s7#Yc)Ih#2#kk z1x^0+xVb;&U3*e6^npj4ZNY5B^D+|9V{1S03A+m|2J$U3Dx~dI23qj}v;a*RW*FX( zo8uA<@6Mymh9_otlN=qnuvGns^&_@ESduvQY+F-&VL2bGFYA|H`=!{|qo4I4N9kss zH;s}Rh9@NH^)8`KofJp zo*s$JjOX-r+4;c<*fo76#tffFo2S+qrb{wPu8^PWksOKNA?U6*afjBd z#Htop7HkrBJhq-~X>-k-9hd>C+xs2CfB?G%{&rh#`q--3<7u&777_l`om29N`>}=fGE5V4cX2N-G^edykXS^Om+(!y862)3O420)yh@==aCnEa#cOkE|gv<&v! zD>36HHp4NVe;!E789^n2hoSs!b67*k;%x!>le?{sKa!Hd03v`4&=d_O=IHNi8!u2e zzyTGFov*u$qP@-+imoYJrmqM2q-ao0q_A!d;ObS8$k(5<7Q8W|OmI2{%lRC?N*v0j z(qKIJ5nzf>nDqz>&cWuxIUWyo5;8~=h$=9tH3tme&OZxJsT{i$^q@*^e+fd0X^?5#3!~8ym0JnFS;u9cmac zNN8W7u}$ih*rfp#5^$RN^-WAequ{}pz=Ml5{DFGGaF=s`^w@Bi@uh9$&ue8(Ok$rX zoEm1L7VYpA?S9}$^nLYUNsXEFU`FNPoT8y*ZhT{wlZCNUdcz(AkZemwEj(Us{cbOs|hG;M=9k?Rf8CC5K&?({eL^y)M32y+33gVs*=(iAaZ<=1upSC)Z!@66;GsMD&+9H1(S58wPsJMPVp*9z3?x5epbE9jJ8l76CEmB z9a}|L?7%rIP&=KMQ*hYuf(XkD_cMOa@T^EEf3i{jaj>>)I5@rAsBO{oK<%TC!$DyW z;!ZuzpXdviGZ^~X9O>bEsS$h3S4R4Wi8;QY)KBDjs;`hJhkEWmGz_TV+08yJz|8Js4ES&rs$ zoo~5{Ue?8(I^TBkY<)v+6A-%dEr?`)bYKz7{AD%3laytf0aOY#5t||O08U`|{Z44n zSUl~;{;H16W26beuL2^Ii#5P)`g*n#`g-&YO<&V-82IdAH&4)EpJSsxbIt1dWq0#l zHiK2G;Ds!bs@_dG#>aF0qvlZ$kDgptT^|qn&7(#Y%x9k=X&v@%K0|rYw@|^VJ*j#43DzU!pVdc9ZsfSD2^*I<$?V#*Av0^eAZeh_ELE zUPRGwuDQsSM3EYdR=UD?eSNOPd_6}pFN6qOQ|8Gy5Qf3xuVjz*Apus` zU3!mHzUU#;(9raGc0{f!2{wHJm5ejrZY}e5`^y4OBeEHn>4iZ;8YBt^{roq&$$GQ3 z4Es2R`w5k4R6i$lB{@DAyQ-b9jJ7#|!zzfNit9J`t}ND%Y!7KL_t+~ZtJY)-V85(w zj|}1)-D7K zTyHVXP;p_2AFB=GrkcQWJ`v(8Y=WXBO;cnDQh|7*>h>LSD&I&EDI*cvjdF~cl#u<$ z-M+!`9DgkbVZTRi&;Tp`fV!W((gc;0%!QVcGjNFIh7O$P*#11|pbr1+H2TQ~6jINW z_l8_Mk6qWj^VqU}omsSk`KiRzD(9AoHJo0n-@#ibYUNaFlpJn!RKKEdIn0|z)Wagw zTSFQB9`#q=uN(b7pygYt*9}4h8^Jru>B3TNt(s$f5zu+LqMgm8Jd;)K{+4VTkz8FZ zokEY~@o<)YoMzz_!8j}e_6>7A5|}OT*G@Fz4`}-J2I7soXkT=9mij!#wB!ZWK~>Vr z^q`!IjN{@PumphfwCC5_x|On33k|5y$FO^8hOd_~8-QsC|FJe5QH5lJL)w}uhk7jw z#J{9FYxSkHWyk2QWGl&EojjFq`_%-dJl*tT+B`|qdIp4@$ce1Ta?n9?q#V3D)Tq^W z*_xLfx>R3}<9Cd^$TkZg@U;?FqCNX}KH>A;Lm^tm|gHR5CQAceor`?Di85cUAU|PS?aXp|W!-f@z{}z7mWtR^%;Ie$FN^BE7!awwgl?@fxLO z0sdHxtH&uEP$0m!(V62ovLbvo+0tA+*&-guC`QC|_B+dvqBFk05iuUEpqA#PHer>u#+|U5rg#X#HJY_3*teBU{d7pYXNOx1FH^ zWLozYZJw?ghd;h)F`drnnM^W^%gY zWh2B$RFIci-8`CI~Hixr1Mtq%G z)_}e19SjFTUcIE$dsHh6iQU|?;#gb8aIgBcFpCi-1W}%5k=D?@5*snxS~7k)dLWzq zMeC_GtaK!w!{+2S0qQ|C@1dG7HUMX^3B4RxjZ#R^v4(f}or4BnCp+|5*v#C)qD0EI zkdg+PzsJ#`A5j9v}nU+W3G{brp@+r9eLQJ`VoQi3pJ%s9*4+AC8l@pAos zQ~AwQ#n;8|Vj}M>yUmE@#p+6W@-=aQqNRlf zq3xM;NeiosL96K1u5bw}vRdfq!5xCy|Is$00D z`Vf*Ft#XAgGHXg^)ObP{lK_}Dh$)vgYFwMf3jXWmKyG%bNN;Cc!W8INBU&$g7dzO@ z!m!J%E|GnMxvHIF7JgWd+*{W1B+*Q}sj;%d;2mM76kz2e@baa5%R^v*-^|u5?H>Jm zo&Igmzt#G;LjMwgh-K{#%|~LjhwOt>8rY`4D@m+1+=ZvzwL{M287$VhF7+!}mFMvy zc@~eek~#b$s4O|eX0Su*c>tNrRZCdyvqj`+_CT^Uu3IcfV?0yp6JBJWwV29(reP}k zX+Tc$y zSm8wk1dTRbjcle!L_xt6oYV2NoRLX<50by27lab7_o%ElA)+h!%?>Tl*O%zu(;%W* z;XC08b0vbJx^VkA3Mai84}@VQ-5C$uJdozRI^HaKX~rv&%ad=AbX?s9b(Q1Pv@uS` zgDzR9_Cg4vSGmHoQ`p`y5lo!p+B6kxPeRdAZ&3bFh<<9nkYzx}B&Jt8e%7#F1SCFL zbNH}qnQ1hA(tC?4(oj&ZBk{4w%)4BoZdvPW4h>W(z08En+WUd~Vs$QS>8jg-ZluPa zt=D~>YkP?d+hp^MjC_(%ItG$nwjY*S1CjpP{kwBi6oj>Y(Bri2-MziiZLOT+d1OU& z=2-B;n!oUDZCG1`b`w>D4 z8}WtJ$?58waQIQwrBS+RQx`u;XSdfdDn`U1Sh5@#pWaii{(`Cdcrd4F7gC*G3lFi> z#J?xv>DBsohF-JN^zX&`_d@6mOSm93Mq*6a9B>M~PL_b~s+Tqd4iFmafWP?S5`<$R zP`mJSz&~uNO@=ET`eSvr(P|^ki|9O$-9e24C-m(YJkjb~R;Wz(?JT-61}0}&2Zccl zC|S2jS4Iasb_W8-bpYa((Sf7%JUXu=vjeGhXxR_UYzss*nb*8DMANw8>h!Nj@L8cM z{R?-4xaC>GIYgR97;9{C37!d^zuFqPMFK>0NKB<=OTbS8R+S&>(iKVCLstkzf$E-A zKY+Rk-3K`>dQa|gP47j-1oAYarMGFyz>^69v}MZ;LWe-mOBuXOOyYJPJdZq{6P{`j z_;6Xv2A8IrmI)lm+bN<%Wn|M{mp`1RVcUgcBswE6e2V2L$#_a#JTJAMlj(ZBu59h- z@6NK{BOnl=7wu?9%>y?xO4+<(A{y6G{k ztX(Rhq!osx0hvJ@EI|(^(ZmBO?Q`uIuJr(nSkZ{&bNu@BLZtF_1RrbQy)aaJP@O_J zN3^Oid>KNU$OaNuhLSFp1i5X(Yap-3Nh*q(Lidx<7^e>ASRSn^kdroK1!#WzGVkS+ zHeCa8%DSvj+~oA=)p=o(f0WFq^N_`IerR>mh;ST!XGQ#DYrGh)$C^$uqE;b{VE zp6ymw@r(y~k{v|EJZtZ}Y?gP1i}cCvoyRW1D?t#i$03K=T)gu<$A-P(0jO7UFujhK z`z;NhY8!EJkyJpn{zah53GLJ?&EYuPrS8%XLz_guM{gye4RLsq<;XK*BZm3kS)CnOhdf`y4JYLDoV>`c*Hag1@m_;F`K?Ptvv@P%h_uHTAQ% zblt11x^XHsX1JELcymqJZR%-0k-9czd}@(A9nA>h`ZCfvB$iO=$za?lr|be_Jfe*4 zi29pI{_(|s;b2rh_9rZn-G1{MWf1@vFki%qSSdjnnyy18V0+~b!4K<XsOi22*%(1yq1{5gu??E`9N; z<*aY1ReaBBoX6Z#2^~A)-qJ$hlovR>HfSz$8QV2~j@L8?t9Got)rilHu(YOdVBL65=ZhcpGA>4;^>SxIW#tli@Aj4j}6M*>0B)GXdUMh@Qzhyl=$QKkX8%)8ibhGq!_DMVOV<{TgCv zpAiTNMsLy?7aECY)3!8dkB=h&Nbq(*T=!w4*7O*Xp_(zVEC2H6I@fu!L?7mUBcvhB%ygHSgzUTv3| zAZ3J7q#sMj6%**wc=k#2GVO27h~OTx;+JW8FMOr2wP6%rTAuQ00H;&SB}<}JdEubV z_ByQ3XA;oMA&jyVe6>uYJz31&$VB$@vO=cr&a!eYy~-!nmNV_52Ghrk$P2wmw_p9s z)&iDmjoVtI88gC~8W}4Gv!*hH0Z(gyq#W^inXGstd+T?_mU*EZ>M^(`!=0#^=pOY8 zbQM35i>v(-zt)|TTp&DV9ZN`f%xbls;$R0~5D55^+MFtGL_eO%C+=@{`QvMRNvTeK zmX}(A!GtiR7VDx14RP*_BCRMCP}Vt6);;QrZ$dk1uhx9tc5Yhy^d$j<6fh1-ohhu; z%t6#IX4^73+^Em@6yMlr*HFc@!`5^|ynx2*tSSbT2u=O}K~WjhS5ZK0kid2=%8Efp zEr+=Q6+~%k^%>91re8?}FqrNh^`DHM*TsHwqsw?kVzQD5zVga=W(Id^I`wLp9}gZx zTEHU~i#=)qd|$w0L_Zo+YYxs zugH;@P_bZ>Q#+7Co=97FAx>eN{=Bd4O7RUSWG9=4^o6R&kB`A zkL5NOh0f$8oQdQZM|n!-5q51IXO_jz430BfY72^flcQ*JLjeeDs3v(u^q8l4LuhF< zSrqz{eBhHGIkM9F>KvKRN*l!k>RYf-OODlI<#%-4qwcrx2PIcV;=-C<4 zdxj6FrLXD$62DN}*RgOO{Y-ccq)dz%f$S0CYFWXEaAnSS8N@1x8+=+3yszao2`S-v zTBl}#(>jfqGwCxqqeHA0`7OIY!=Vmp0_#ndYg*;c$*7Z(>S>K_NM$?KFaKmA9=!kf zn4^>1g?uv8cx(|~4zU>3EQFlsv7%;z2jygRYvue|PltQUcX9B53GVy907-DSKF6Z* z3sV9u-1kSg3)Pr?Ajgd&yfgh-p+)j@3GyY zpm$>l-==q!^5bR}!cFiOLUWdSlF0gVO1Ogf?orDQh$C14o(bUOXGTrJ=$8U=4e9ve z$s?d5SWR=KM#21L!kL$gtYk&n+-$|up(Q@>2PrnT)>01>Ev(`ZIT&orl3c9yWr&PJ z^-U<+%Y1B!D^fcbgO?mcnsn9@xng!&;Y{B)&fDwUVfGs5bxzsQdBoLukOjUl3+H6# z!GbNEIkDgc9rLoINSs5_-tp00i>hNe->Ht(eFpP z-E_d*k;BsPv@GWs)DqxUlCLA}qKV4T5;>#%e8CK@^s}iv zE4(bSagHOL7rC#<5vq^A-W}aNr#e=WFHb`*_x88l`cB?n;@(}REvP6M#! z&u6j5IS2M;SxYd(KIQ1pD(=bjKxnSvfsBfg{Q$fBVP{!H%uFRdl7txX+|N*3QVt28 z#f9+b5Y@t*E$aX~!r~KV+HbDc4H9vNF#I+8gItO2gjpdfs5ut~SWeJxCojVcNxz%1 z&=W3J_v|Ci8*<@Dn~~%@d1rm3CS;bkvUFUn9x(JWmAkBT@$vrM7?HnQ326 zeEh=jaMkTOSQhEe&fg&&0eiUbezlDo3?YQYOlbL&hNQT)5UACLn{0p%sQ-S3meqaI zzBLEiB>-HS8z)I<)DNg$wj?uAH*~2bQV#JoHkQK!V`z26TX%8alO?RhdKQQ+bft4D zy`p}?kfXaWOX(8xJh6EtVr{W1lz4$)>;__!SCO=PO=&Q;(VLdqeF1YO^Y*tto<#<} zn*FHvcpR#EiaY6ukn&;JH_?E%;djKf7bF8kf3WEaVE{tp)t%Titt`+)7~W=7T_M3j z{Z_CL_s$OjQ8pw=&=Btk7IHs3kIL(A3phE^Zfb8m{&MaY+}7aiFl)TkF@L8^A1*)P za4i{=NC~*0vfkVYkynQw5{J5cowgi^R>D@sVhnLUh@F<#(Z{q?kR-vj{Atr0K3osY zWTLOD*e+hudUIi=_)$T*DK(YD9aTG;KSwGQpz-HFfV^-3EL#hTH4v~55X^xIP6m#d z-=Ws5XU>{%!o>3H<2j4sbF*R#TytX~P9=lhEUWJJcN93NovNi{5>rUmB-wOsM5+fv zzKa^ovLw#8lEA!&$(l_cB{(2JKZy^@8SG+z^X5wfO-3cb)RIc=_#(xF9GDDrRb+jE zGwfpjar3)ahzW8j9My~CVVR$a&uiLvUEo@~T22mLkZ%fllT=?+)7*LM`Q%}wDYE=XtudG5s5SP+_} zZRwWB@dhh8Uk{fq;DGV(^&~Ml5^qABjHI)61{x#l3mu^f5{D))&}T0=iL=vf21kIT zJMRb;&NuxX9!8I;S}!7-xLxonXdUe+Re!rKP2JiD1Q^HbCL?LC?}o-DFf@V2?yc8W z>zq7T?l^UN^PF1jM?5okIOot8<{VL@ZGN?!v_h_9d*&b^C?kGMoNb|F!~k`xjZE~) znEzODF#30nyFZb{WSn0QEfXXlQw%|o*lBT2En_;X{Zl$>vt&zLu)1pZ=E)!La&JYR z-A%U9YIPnILlQgWa{_}m7ATg34656EjjFEZmw|@_(h8mC+Zy&pG*0V~q!<%0{Lb)% z#uB46+zF64a(UOLzcJsOYiiSrHP8zV|I|6A`P!(l>|~_gz@&ksP|pdy!KSOQlC6_q zNLJ392Q(c~Pzg+NjO5xzAsT6NG5cP68k^H-R9$r+UXB5aP|RtRRN!ekan+`G2-~R< z(PlZzS|@IrLp?03k2~As1?x#x6ZRpN)7`YG8WD75Esb9Dm>v#U&ORl+<>*zUj_s8= zl<;H@AIxf>?;?GW`^hY+dK+`u^HBBA>Pob`oIRh=TK3RL$QKi{dFC~qdQ$;1s12{az!4JSs`wKW4{t? zRXDH?zq`!-!b*z_jID_m7Y3R-p$5J{)r~u3!r1DN$Xfq4Qzejab+H8n6JNlCMLAG1 zOd8tpHSwH6W4mm1t&Mq%7-=akSy>wk@J!aPJR_3RAX}e3WcKP_^E;TA$pn$u5Vk>*h9W>H9<_P|gg0uF8!qO^09W1<4_Q#EP8S1@d zBFm%e%2<;q0$X0)dc4?Ql)vn z=xM5F4}&^~P1BxXlvR&EzZCr`M@-Q5`Q@ll_4&}I=2DV%Ox3Cf_WmF?`2M>PsJMu{QweJS7P2WUviYJ2w3t z_L-)e8FH4DpTFr2Lj7_*00<#VX>ZkjEmt61vB^3mR3L+L76lA=9Ci*(J;vOvw-VOJ zi@zYSsCVv}8=KT??&QQJjUCmo&@Rd^!1#Kqg(RX6wg;=L+v;~CsGouyvTLjZZErOt z(8+eY;tg;uaLS0y7XdMqOJ9Ph%^iN3FVaCRt2L2VIE)6(K!Q~%Sb2gyZ-i$W6>?VY z-OK9Dqr}|6V@iWf>x!#3m)>_pAU>&?tR$@A`Sd40Fe7JT_*C~+|HQEkW>1llqiy=t z`z*?2o-l!~Qoh;*hA}GwgA6%5%_NWK-N^qS&-w~nZ_)|6&Z&+tabg?-@oT+=HfSu7 zI4*K%V!Jt$8N`r2pVuWjEgY*W1@qecV^Q6C7$j7mJh;~aiajcq@xxrtOF8^+$C`nv z%QA`fUV%Pv9oRRbkZ5$u?6wtme3Cv>xd?kl>zl4;3KQtz%luV0l-@UQLA>OKpme}o z!}~o@-)k=SsQ0mx&;@zoM+tm`TXtD&cD2`yB|*#OW83RI9Ft_U`7f6PR7$0)Ot6h!hSPuOJmi=(@5k#R+s>SRmf#j`o@Q{pU7&f9#1*; zMR3-@!qVgEkx)j#TM9Q$HzMsoM^*g>gsg7o!?I8l` z?JUl#uqmODtn~()&hl4vZGrFnxB!=^dU^p*6A+eJtE5I>7-}=RImg zyNp(ICs>P!WSUE57^IHlRR+~!>XFk-`^?1^!@Jo~5Z%2%mBJ51d(}>EoiX_3*a9qP z;*__*DI6$qCYFxl4k_Q{oXs{gbS9I=Pl69)T9eME(JJo42uAY^c)~mJCg5lk81vzG;pFl2BIUmDUBB8 zWT18gSgBSpB?8RNF__Vz;!qwu87rQq%|fTr_OE0~%SMlEPGABlQ3v0C~QLqoYHApPpySF8a85R@I^&gqyJTi#>+98h;rt)^qF!#?#(n5y); zm2n>Mx8LgzpP@cO?`6r>KA|m64IQxtd@r@z$lV!V@`RcT5Qpo$+h>n7eY<+h}USybb=g zd;M~rSkT0zWo~56t|zkjZm@LT(8c!j>G)6;lP~JZlQ4mWW|g$Kn=gyFoZQI^hL8_(4O{-xkbgW zdJv`uQbyX=V5t2-TK)L1`tb+Jsrb`VW%p`wzeLpvX-#)%1V5n{d8g*I=SBz64c%ab6?KKB-h%u?q8 z8QXu*`ZoC6EwGe5WPPgRe?WSyA$@8qS2~!*@?ESY))-8vHrnPFa(FR?^Ub|mI6)*sSQ@dJ7hk0dt?ayemU3MbHS07HzQyA@g0_SgKNNnH_&9qf)>xKBKbYRCZ-7pX7B^g(wIZt zlZ)$B=IR2ewnTSm9<9El{_A<0&4{3*=2C9BC;59#A;h?ql6esRM&ZxWRBi(Vb8No@ z!_(N|qd=f?E1y{CDy}z%rb3(~SDAauM|8sc$|J_YhzFHu2W zwdxqx^VMn|(c{VCyx1o8=}y)!rHkXiJN&!eXor|W)_RETvETKp&v)Cf7jKka&BN;N zZ&DtG*D!B(*(>>UR`QtiM?Zr=ySHxkPdV24mPcfK!Z`DbUT)d#cQ~@ua?Q~CYh#-| z{4X(j@??L95u4*uWArPwHSJW{&&Y(`S$5mUU2Qi*)O1jhM7fFXtp4k73Ot0>a*KMrfER^h`p#9#|X_7>O;0#mCrcENFbAX zHE^(qe8vREC-|iU`Bn!`BEPaAg#Eu_-VUulqOKP}*LkAsZayzMbcwYKhQx)T&qs%D z;Oy6-jiI91*5tAko!J!7sT+3-1w^UW%2K!J{M#jTn>_-03l-EvmwSM6_7o8N1HN19 z(t6nkV@*aGnYtYg7OgLM(oBfqt?VsMj@bRw6&N| zvayNaz@aJ8w>P?5-(@&0Z=3wOTg7z10TJ%jAL)x+ck93Di#&I0i}i$HptlQ1Cq!gZ zdGu(u92UDzeGe*-c$@-)k|=vdYn2&IyS1{}Mr9S6dQlUMXO@o77f7xsvh>`0!iuG}gUupmcM z06htRJPJ_G?{Ufo=5$lqeF%VE6ql5W`;^4ITS%kjAP{zHmyo;x^?UMa2w#aFIS+UD zk&8oTMvrU`jngMkwj7bnTk*zhcWp`vMnSB0*KCe82$5Cx7in}Y)PPcIYJjj6YkL2(L{czMA|2;CObSMZWMKG zlUV;Q9l74MO*SfZZ4>x*ZIjjB)sm1LXrT+`n@RFB7FT~LPj{nho0#Ccwuzy+Yn$j) zUE5^40m{g6G*h47o{FRdA30?e`9aQOcz;-*E4s4fsVDfd*Ktp-dh8xn-+YhW#~{V} zqeD5Nspic&>e}Dnjn)0NH-~;xqxk#^h=I;-r*7LXbIMzFI_pnrxd(KFJP%C>p(vhz zXC1M1O@GAZRD7dRHL$tf+{}t6cIelF0rL?py3H5Wuc(FHQ2rZr76UM`Urn)FlFa~8 zN=P%wzxS(^uTXz7dTc`Yr})TFHd%1Cuu_4rQaRiv0~3?xDv{r9=Pf9j5L>yHd41xu z)f53OUn6gyx)S;)5xf_oLJRGGm3twn1mlt#%-t%1Kl+?L`IgvW{48vCLlEN}?hm3v z&b7CY`-?ckG2uy)OK~ACvvEe1&lRrgAvH7~``hM@V_(RTf^Z2|X;)?SxNwm_e%+8f zw>~WnpCPYL759j1C3`Q!MfghR+9AeRap_3-tF;&$*;HN0sgM+GWN$b5vqZ{C;)Th$ zjqWaxaTLMa(t<{-{X?3NJO|F#pfXc+fW{fAVEzb`gagYqIoa zc;<2Zy5S%0?Wye$#UQ$SI9A&mTQV41@_X5igOoxoYVxzXUtr-&^tM9<;czLD_(bgx z+V#jY@VYa;ClXQu4~bF&+}2VTQawZ^Kr_Fg5IY7_m95Z-+-3)A0`j z>iZN=UJC|!)LVZRu|#jR6jShiZjGwW&E)ZV4cWO5b@B?s+^agE->Jl6>erg~L6f!8kcGiDhN(SO>4h>hg0>2@Rx$2;?eh;f#P~ORTT`Rk$0YE z4o@RXq%Cj%hTaGtvSpW)?1a1|X(dMXd^W1fDal%>3Kd`kl9zIR5VASUA^Dc24(s#W zt-P(@fUE#xy&H&CV8`cL9^AwlrewQRq5cCRcT$=zIM671l#ZBEzkM9MSqqN!#nzT7 zNf2y2k)oj}%!kx+^tA1gNQ5GK#e7*-%w|55PQDAfwr6xey(Yw7&!z;K(nF0|YCEf2 z>k(-|*Q4@YmG1}CR%##F`pH_8eV@Fr+-MQLlp!wH;;IPvt24J^sHYFuFg{M+XNY`q zH=alkov{CdGA5D-e9;^GVww6HK(g0Xg=*0_KcIf`3#&u7qXBL&VYq2&^&@p1u$0cO z5K}7E45?whVkep52!-v@_p3KxNGQUoU92x>rXB$AeglocZz5RTubyO;Ycp%V<+1rG z-=-`2_t6#Y8&%PeT17=RlIcAE zuGj+%aD9%oetBy7%LmkDENnqSoH0-wP;9__QSeX=!C=@_^Z*#|2u<$%D|RWJY`Et)=mh z=3oQrE?tqX;8rS-`ST%uU^7|6UrPj$Jq%rH*Gn3fL|Kdms7>0@Z)HE+E5_3z=#fGT z%CrIUCj{TU^@`VSv^*XWx52u_>q?j(=V&+m*&XJ>AbY{mdRWiAkXF0 zIAbZ(_FW+lxBN^B3@8(N5^eTO<=VE&)Y@n1DP#AhW-Bd$~=Il!U(iBJkJstR72dQ3l6AdBQLYk zFOyp>MWt%w4)1Z(U^0dg$Ymlkmut8spsXPPTDZhm#)#696S8hM#TB+Bh2iSk~ zDErhkFEVzqhMvRk>`)QBQU)0gCJ9c$_ybD!sW)g}(wgX-3s_t>-$A?)b7{8v8a)sy zc@^@fjUs8k1~YuiZ)I-!)cs%A9X*NNVYy{@z)W{Ut^cW}Iccyy^*#-bqf>xW179`~ zsKu0OY4&8vb87+?RJgZ%1-LOK>M|j@K>y;Ay09VktHeQhuETh5{_m9dqMpQmfqlrQ znG*>y%?=$NfgB@sj9~^rk1DP?jqlZ;0EkE326_!vy+SgE>PAmnTIX+jCoxF8j zmh+gEIKv`F7yPFT)lTNx$^2P)Tb~lVsua@W6Nx1NI}}gNXgQEqV!k4H^X6)`p03yn z_?3P1l#U7tsRSr5))Bodw3a!b?fq8s&w|PlF=7!qusFs+7clQsTPfemEMOL1s-DM` zCa@@`u~a(uKzv=Pc;V)#$K`E&!rEV1wCTxXr?Ra-Y-a($KQm#4{pNeto71)NBefac zj>u9|2lXUsd3Y8d5OSz;*c)vx$o~*)9U^;`r6~(ReCh`bAGruMI@)_B z&gc7uC5SkYmZL{#^tFbJ5J0Z4z?Y-McQ$1q2xm1e$i$ z>v$VE3wYr&PGhQW^LG-LmmPK^0lT*hFahqZcU3#zwY>&fAaBPLoBXa&A2LY*$qn4= zsgWDmug3=eq)W3S_OlpO?}z7^b+p%G1vO$Tqd6UzTpyn_Xhb#^WQ8ZQYuv7b`KCfv z=>&+W(OpyElzQI;A|KaP%Q39jh1myVsiW<%6YJ_Z3dqtMP(NgVf(^?vq~%PL?v5uc z;&wXCq~V#;OQ!LunBdiSVIe|7wbuI`S@kuTRWAws4Qpzc7_XP&>!7xMDx&E#>c=R{ zyIrr$Orw>b^_m}MK%q@H&~tK!}(H;eUj%_FEpHYUnbTmPI_q2_5u zKoYAS*xG1SRp=gTsBZ!avHt73Xy?1;AuM;y?7gQ#al?hG0R4*3leOwczh;uK z;q(qGFPazw^NtH&82vaae6E;eBkRUH!YHPCoPa_TwCKT|(O&X9J{avEX5k)2KeM^^ zFF**oAqT4MQ9phpHR=)JDKmmb(=kn3wAziEHFy#O%(rf4DDynq3ZZ3Hz3%&eBP*)) z2mD48Rqoap7cGfyenTNKQO=QFtC!2wSq#~|mf}M83C#6p5my~{-uM$7y#;S465pEym zwk7fZC_5MMD9Us3C)tFABrwY*62;3RQPH)U8m++~WRhJn3%ez#2-d0`(^9N$McCyc zx6n;$Hq&iwZIA6~YunTIsJ+_bDIz`9Yyu$=g#cbaTSaM4XB;n4EF@sf|Mz~gyCgt+ z&Y$ODGdnx;UElA$UrOmUx>S1s%GH%pmQ&$`FAJ}_Tw3@-x?izTfqWEC(rbN0 zC(aFSqhIRh8ZVz-t2X`Yf6LofyT4Yy$2EJ^YhB2%a5w4N-!aV^mwx;yMuiW>`-ojs zpn|X3iT;l4S$FM*2XE7%*KTM>rK{$02~T#v(#AyBRd}|Nzdcj~Q}Y+wt94xL z{U_b6`$?Vr#TG%j<35>A0{`!#pseI~(vMW0Be%s=fwPP99Xm@({$?`(E1 zQX(6vFl|*`tCZ8OK8!dOlV3#{HQ#6WsV|T^o`<0=LpO2XCkfDjASEhlaU@=>*Nj_t zEman*!lZ$wu57GvU7kpRR za5Y!(MXRUi?61#n4_UJ|n! ziEsRf#{!AO7WdD8^Cz*XgHI`)KunnKqsdy;WNo@hT)k=JP3*^;e#C=arh2~XS#y&# z()BEPlngV~x^IodCNTn^ODqV9nix(Ri-}i>ULXTQQ_{L`V?SbTykoIZ(-R#XO0+lA z1d*%~WGaDB44_ffdM^9aW9R2YJRNh)(hg>X7kIfLh9c-on93fKJtYtC^>V#=4Ysvu zEd8+ql+U<;Y7s_LPpGN>a>LVu%3(6iNc2kBzc-Tbih(M_bDqjGu~T^wO3XjGd?woY zP}2cORXDlYTYIz{3lqz;Mw38CWsh4UOTUgnGAinuWjD&he!Vu78pxAGr7ur%4++aw zV8#TS_s`2{2dha_7v*pqAbB>`GFEF{F$J{X0G$Z6& z@FwfU8(O9i^6UvE#*z^|!(i45OJfK-Er=xRckSwCSx?Y}m^N@22zi^=49o@^sP)^( z*M2T!*Fxpi74BH2jO#aLGlZi8`aV-pon!6exXED$G~n&<@8>vI3rHsN(uJQni=21d z>s7|%lfHYWHYFIVMGmh(8Ie6S1+x<}jee?2>g~or+Z@<*DH-jyBxPg1MCIv=qf5i) z9M1OqWpe8xl+)#De~!d_oGA2VfohCFQbDD*#F>OkyBCu~vTX4qA{~ld6&F)q7!TlZ z^1OL+6G#as%fei?b|mzx`Cb{(0{fi{dFy=jmPq^J`IUXKY%KSAHbHzJzSKrM6|g@y z)%7*RCpFU4qc_jUZN~RndpbXtiYbJj+Q)H%aPhzhos`R;S4xr`0&OsWiQ!!)sBjr{h6E~VKEvuc*BWmVw-|Syus_0)Zyc*Z!3vTK@G8}xw<)8s6CzI>32#+ z4gQ?fN~dPON}W@4+qvsM8IY>J!9@&jR5RX|3~!V?EI>@WyLvd>M4e99tB?@fJ=Q86 z_mQs9P&e!MH)4xDYc0>^bPdv?0^C|x*0Hb*;JH`7OWv3Y~nF2@jb#?Y3`affvy0p6XUOH*r0BmmIsr>(dAm{4 zHkTtWSH(_Ycm2#_Gi~*=?8nl#&)y;i=_RcVGoxe4 zQCBVDt^B>tDZ;#Xcdc%2=T4ooUYeMEw1KrL!(`+QCs!0f`aN6KxOS976{SWG#)hM)53khGy))>nlI@&L7o`pT@F z@+5kn(9jOOy^uw1eO!*8?4TR3u}JX7;tbx~I7?BB&BU(EbzpJQ?YS?{x_GNOX!>L$3^WWipZG7=sa zF}b+a?3C<5W?$;fa$VbcNLw*Rbh3iEY*&`+L`r|`)P~xIH$iq+Zfjs2WsPef6aQEpi+YJJj@UuysiL znq)~2ny6z*-f(y$(Kb4DmBR8M}{&B6dx#EJ6~VGLMt71LSTCp-==%ww+kF?kGVH3bt3oH^LR`D0z7poS}+leCOw`u8!o z4A`Q+VMlM|t*8LN4P3Bo6sY(|GAl_7!BA2-3bVavxy|j?hqxUWRPrPbW9!%1WT{o8 zR1Me432PE_q1LjTAHwE5;Pc$a%>AV0A)Egcvn%BkGApQ6KS^o>HT_yV#DgUF5{cIN zG07;kmX8=cJEFDxOEvJqrn$-_qd?@q75gu_a<%hi3l!#di2_&)y zDmWkBa97x0m*Ktb3xPS|JcO1JsZB!M0)ygdrGN^d^Bv3I=SMfx#MM2kG&^AvM85gf zVgo0j3xMoUaxOjO8q*uSh_&FZAyT-eio)>hmIS7WkQXxR37_1h0J^quI8gr(Y~uno z)P+eE%Gh^_zZ1%&WWiaH^K&wV4wGe9@uU4WRxXW$kl2^GiO+CJVGzd+sZon3$I*J` zekn=&n02o;OK>QM=yu}uLP@yZ(MHVxY$3BWYU+!Yzeh*E3cJSumOY!RjM#X=k(`Vh zeIY*#CX!3Cp&!X5e;7OQHp&zsf?JgU4+8xvQ%XC8gcz&ysI2dZJV7X4B%`IcoO}<( z0s;K;yHDcllV!K@y4XR!4c$29Js8geGE3e&!Pcq3e*gz&bhq_y3SOk0v@DHSQpxy{ zo7F3*+2;GKUkb7VIWS&$2=yB}azQ<;)JvB5LrJS}Ro|0QD78kdYB@azg$L4^?p`A$ zx{N(pwwI@ssdbO_D(8l0(a}@us6xBkGb1;o&F-Vg=Xpr^)X92eexKn9;Rk@QXpNI@ zT%Lh=Y=B-wGBg?nK#K@wmCchx!3;j41&LeUXALkHS?6R~yBch-b*J0+h_!atY|y%j z!Ma9J174~kJ#_r5{N%(ao~>;ry@0<5pd0EGJ%A&A3b0FiVwi}^=F8B9a3E02eD9L) zA8>-13S+)`p|R<$X1*F`!G@aoIYt%US%2`mB-G;auruPpYw6Zeka{x`2NS4cts%NdkH^2~X+9n;}ar>?5 z+&N)0@u(WfLCJ`LMsGe5&pI$rhxnM+UN_KIS2WkmhlZm5Na+3b?Sb4PR}0am1CrEh zgqc(lY`pW3H93gywUP}vNDp7D_LejlNLqmkHxyoGuQEuXb&!~uH9jN0x;$q?vGw2z z0XB9}X3;1ou>hPc+&Nnis}PK5U`K|X#U05oL9kM9mR4Q_Yb~>W3NXq`6~p0gn9qXr zDlzRnw{20nQ@mFp4hCg#SEH^<%* zCdquxTKhJVpm=%UWOEPKH3w?7Z|@L>Yb04zsK0fm^Lq9?pVW(-l+`ND$2!;mF(<8I zd?E)RiiAycb&Jbuk8UrG6(&|qV~{rrm!~U1E}U59i$5j`rrg+Mo+%=giP9L=Hvc6* zu}OXintyjj2h5M;PP9yWa^B3NsoLn}Tc071&yuOTmL%rQM2eCjFCJmN8CFjOrHT(g z`s3vn=9v12)CHi#rY}0Gw))J%TVg0yrBPYftvR>Xe_;mYxCGVfPM-F0{L2wER=w{nSF9f>M;{@F+yA%t+pdg>+({ zk-TBRh*Nyj$&DRx+eqW>>^@7cV(5Aqc&n|xuXtq`H&vfXK?3~XAaH>-_(@t%8Zc>w zSE}Q}tf`7|!-I{LPGKM-{#^CNk|UtIh{Atc&IoX)(g4*N7#Ln#m~83tE7GOF@+c$m zDX)>7L+82Ob;b0(9KOB-eOkis8Huxu=^Go#1+SEAn+8}8blQzZ;wg3MLVKqYE?hRp z#nTivtVX#3eP2E{Dr!pDh+LtkZ^4#Wx3gtDje+${YlV>-o!0?<3xp7T(jeLQSve~L z9ys=zG7&x(oGkv&VG?p~dL4brP&jdxzA2T9z5o|x3jKvl4{@|!U6SF?206$#pZYS* zNY1V#MALhwb+ccX1*oL;d#Zak%ZIfW2K8udkrvJ7Rk~69wgmb3$A?nK^D&WH`4Zkl za>Zo9M-M^>lVy*5Tj*hL7*(Tn0*Ws*%%w9UV1wK+N}0&1A0%LRNE|VV=#O_bI%AFG zr@T^spv!vk<03n_>0QA)codwDXzX8cg4{k7eubJUup69_8x20HMRm)^%5TM+N%Ht7 zH}wx`Im{x_P`iYzIBYTJrOWV>YiJ;!EHi&P`3+4=v5~lg-?RKI{1jUMbP5FcL{U-E zoes>@`4oRBbIr&A3Zu=hcJ45y-$w=$gA7gN_)t)h$PJNd3&O+Ob-YarW*r0w4Nb1p za-*trd)??T9_5dg$0nEh+UiDQ5TUA~<{CtJt=D>Oj({^|9bp2$KYWy|xj7%bQC+cd z?0}m@sm~d^Bz|9U4rF@Mo3aK*&HTz$Z=sN^b@|#6aa>vZD#Mbjy@vnZN+qlUm4ntK z7Bp;9ZMA0qaumUPtgmqcPJ^uit68Or9?h$iM-0#IaLwKoyf$*@hD%Q1ifLOVPJ%PK z(t3kQ$^IDC{3kZuF!)c5yHU&kMf_jP{|f#$f;VIf+l*4aE#?2^{9iWgjH!K~+8u|1 z0o=ew4u(>P@~n-QGyWzCfCZv%G`Q!n?so4X0m{86Sv{!%eqT zgvbUHn67`gk#rup>kC8>BVU&*G>#P?Ls^)@{3R<^Bne-`0=8RH%7xiaGf+>Egv6~kMl${8zb4(Bax|l z?S~jMd?)*BZ@wvec|2#u)K|jtzg_*7?M-PUkAV)UJPNTjwBOE>gM5)|7+QOS3P(lb&Zobyi%{q#_tF;Kl z<|;25R`M@-l^LKbYhS0XuSOQmLoJ|+drZI_RpfCC@W{@rVS|~w zE890$`^hn=ZYX7dJ642)Wv~&eeITDAl`pT-EjH^qNTx(6kpN5&D)d%X>>5JP7xA)#MW?Iu!V18l8_7j(-wjWv4kHKOH<>|gC ze|r!Cov)K`u0*QGh*rx;Olr@&ypgJ>d5^vp`!v6+u}hiSS{A|j54Gof377}aSB|eg z8n}v1BdkPcL$Wj>G9?KuXD3Syh8$?`Q=`s{y(Z;u5|fT$R)0k&7AN58fFCVl9j{sS zdGa}!eVoZ|YhKkPbR=?~W#bJw8;zn2Uc|3(=}-n0)gp_Uv7;Y%eF3CQ!@z1>Ij1o~ z96x?Fs|?^l+5|WYv8pOzX)5ZErQe;Bg9-rE4Z2}Ml*SzmyqO z^+PPDMgTIe7Vcye-Pnz;ILPCd>ZqtB9;~Y);4XEMkUvN6;^*_FlECKUPoBYo@C<{!Xj9=$}9cC+dg4P!0Aw` zc}7W2>=-qGMKinV2O@L&6jRsLo~yUz%j8-*Vn?jU3MqQ*KO#Hm%XE;_p3@e%+Gjl_ z8!5YfoAf7782*EXr^|*_$H>Y0s`vw0B$pe~HWTV{&1K(_Bfy-FD`*d*0*{WTKYmp= zkS1hVrNK&TjWWmJso?@kvEDpb8C#MC`Pi)j?x-XLaJ^c~zcL%j+d}F&VVr`!?cu9( zn_m}@?i7&T<%_?$P)ISxjt|#jY1LP}S0Mv$>I_Z@Jam|2raX6W8xGltbX+ztbau4?y zo=gw8D0W0n=-DkhV`U)`>N|~N2Z3(*=2SRQn6buJXYhO0uQknE3Lhq*TdQ!OY;UQk zscQez6DG(0`RXUw54VOizm{#6vP-pqv*$l282%k?WIY6vDXz?gR(v3m^9xn((SxqO zebez~)^tUI-Zq{%KBNR}o*jGNteAx&e^hC+ppLe@(9o^`Z1Z1^?t7|;C-U~`#eKS; zMB6*-+9saOxlPMEYTQBx*!&niL4ZTqFA^dv?6F?DbwJ#s4aPWbTWW9v0%qAm>EC|O zZ+v|~zKZ+A9_!osq@3m%)wtbRqY3~~Q-CtRhLl!KT|-^n`PG&1^TQ`5@Tjz(i#dXY zmuA&Y;D+OhMOR*uKI-w7XQnI(eR323PcD$)nIww()`#bly$cZ+ZLZ$vxO&^Xj!uN@TMXx2t6jcQ& z*r0jwE|My`ro~KNzs$ImvQ;!Op-lq{Jy3?%`o64-U>HQO9_uT`6LWIcmO7M?b_Zl3 zixQ|_%IR~TAy!S{dByP$n~3Z~Mm7@obt6M&@^;#Vct7k$ZbRwt&69V0QfEbc9FkwC zcpPNf=pxhWFG=qtZVaEP_yUV|oWDyM#-L!4#ak~@E4c@;+IszFb_{RKutJ4e%MxiK z-Zg;DT#(J;u%Ds7q{huDpPj3l_y}C2wTM$?+^*1CY}&%CnGXE7$7(IVPrVF zsadT;(mgOklo3aJ1Hk1q_C|n`c}L!I4FfrIvO63U7s*n3jxancLD< z2BG#bq`bFl@!G+FXGRP;aZ|2$PuzE8VK;3P2vGSmq|!{X?7>znI$#F#O;_I_JY*x9 z*IE>>sB^>(K3Q9CJx;Hj7;$ljPX`uHp4aBuO_|2Zv^? z{4cZMq4noeG%&Zl-~le$^t^39Ugr(u_0Xj5+4ker-f*5Jtxnzc~@|uG;2;Qo2Sz^)Y#>W^e_X3HaiZC$eu8 z%!TJQJhC7Lqj2st{2%e0oN29rKT?*<`UMY}1#hnd`aG{KNqE`|4s+dBpGVUk?a6}A z(UH2nSbD6dXxS?Fte!+y!_WBO@5^Pol4bkXPGRWa!f#Em014{|5px({;hOVt{NS%y zIzeErT_0Vstu&u(%VH->)Gag2FK>|vCHU5^t~Q-GM4Rh=J_1Lu!75ue@?f8J-(**9 z71J;v)D;J`UmVce>WbkyWb28C&^FI0GE?zGT6~~@5T}8{=!6g&9dmE|4b3pW+9w@2 zU`>?ohWK=-3p_wk+oP``>2)6y>65A1W9bVpZ5%=4?h}vLmk}N0#nscqOLIKVSPijj z-8(chM3Ty6Sp}kJfr(3q&Ffn8AYLU9HaP;$cqwCv0RNZ0z8pqvnE8s! zOj}riWt0YJj!>S{U$|l#ZoBBf5Z9SDe=wugp%fIIQk|%t`05ka6~0bmnfY4jeya{8 zv3R1{#t7+aH)b}!UVIemTd%8kR7%HOGU2D}pZaA>GPqoNS5%bV*FhisYbyWY2)3|j zIcFS)&N0=!m6>hLe-g({m!I`zHQhu{EFYR1k{cSGiWtY+5#WbTTNVsZrAj;JfS0Ya=h^v#j znBn-{zJ_~a(kmsf%D$|^eO#rm^~zyzUgn%XXZ=}yO^)f?H2k5>a`zOR#|lac+Jh2W zDCT)0lnxomW&N3wGcQ^H#aRVg@Q{+C-2f{Y1DM>kc+Pa&#jl1XUW!f$=~6^+(IPBH z>5UU)Cv5gUu|n<^V&MA4#NRR`yqPD_5lY=2*ZA5AZL9Xc0V6evgEsa~nq4goS`WBy z8>i!L@<1bgu;!S!7^*NY)^YZekzXQdp*c}%>#pmG7934!u{@DKPMuJOaj^+j6q{=` zaUP4IWBa0KxusRtUe=*#txvoqCpcq5@QE@o`Rb9$h!hoIGD~IbK1{EjAtr7$3U{Ms zon8MCdT`PEi(1l;sr!J@^rn&eDBtY%Zy)L*J^JO?9;X@pdE)&vzZ78_7hePgQrC=4 z(_n~R-udjExB%i0mn5xkqJai+Y2##M9curcyY5@kXXYs3QE(`?7T9$p~FqfFGqK*wni9j zmTApgpl+IOzGL_SJ~Zy3n(mF4au2^llB6noXn_^KS#+feSGd7Z=by(MJ!@H`ZdaSV z!w?Hx6=KE`vW{H7P4tdlCl`mwp3GtII(P_TisM!@g56iK)>XmQ} zd0^nhI>nv0-1>CeIT+$&1B zegKUEJL@Njnh+V~ zBf%C5Ko#^V&}CgjPD_4c8diG!DeR*eXKpi3CHln{w8;z5aTeIZq7dc8V~5otcxgC& zm(jCGTXXQC5?u3n#)ZOxQDoHnJ=O;L*Hz-F9St*@6>=?GDQp#@*zKx|`=ux4{Bk2M z!lRpC-`2b{pMn&I$;nDHJ#*lUzb>Q2<0qU@H}x$t?zEqQYD0J<0bPNWx73(lA9gfP z(n6myw;d;q3PSlo;gdd263|7iuqDw)-GS{35@whnh};_@CMugd$u}1p$@P`iXOKVw<~=Nl7H;YhveFn#2639` z3r*b{PF@XrdA>MvQK758#Hi^f!)5YDcx+|Izo$hGyVlY!yDb4kt*^w$)=3+I>Gu?^ zyAX;gB1%5MyjFW#GaR6H}3(A@WgO?N-{EQvQFdb@mD8Rke-N!{rQ-i4- zroymJcwM<{7|*zG%M*L1TyyLVT}oJV`a3~Qdo2%PQU!N+T;s=Pd6+stx0FjskMH-Y zGXOV{oLe68@6tAV#S5v3&>!(aLK`h!Nc%_wD-LyodF!4v%(!|*1zf}{(sDP-e_7^r!VHC)WV$VND-}M3QyBt%dBbHS-GBM!85CAW{5-@Z~&M z<7B2Jt||d9!Wfq;Xx?_`nq!@0cL{C6p?+xNsSG)WhxGnZA5nvTZWW9X(BxJr@#?(d7$`4*S=JWHW<}ANhq`^b(oz%+m zZLgoWe5VHms+n^8JJzSoPAP?A+?9RZ`Jt$+D}uw(-@VF<&Xs4Pq!7_dT&3Z*&Nat&q5vc|tYoLXgXakPwx%<4qp8n*M2?R< zmeTzx!5UL{u?8V$8S}`qG?s{TZ6)7LH&=J>u~g8X3YMf!E*ETFIW(Ip4Jl{i>0NW4 zoL`N+?REt(pJy~-E}puV9&b?1B=dV5(l`)5#s=CtU@`JdnF}*vI%XcbB0VQ3-oWnk z;f*PLi`sa_Gl~UYF@;#}6&Hx2Wtyv>RU9A-K3Ysc=H6-@OOFJ{70)P%jS{=QGBDg_ z_Ox_FZxc#Wu5oFve*Q7 z*(6+}&KsJZr)%Fz0d6=|m~;4E?7XA+sxILs)?aDPFWvUW>La_N7nz-Vt&%>8Q_OS! zU`NhxGzsrncwuH`zGCyU_GCZsqdRCVY$?8E7{Nqt! z1*k_v0)W%UsjAJeE|@ZoTQ>=wl44-shF$n$PNR3Tr>1)a&Pfekf?_@UhOjR5A<@>= z>|Xwkwz;7si*)w+ck4B~))T=dnb%80nA>`IaE50Wx7WSx3PQs%b$5M{2NXnLiYW;j z^7jgx-5%Im)K*`v;Kq4wt{Lb7%00M4_Ka?;7Z=GMc}l*^V-$~iOy(pwD}J9ZM{1|k zm1M+~8_MP2cffVdqo|eQJl`*7h6+;BaI&rf&R)!<>`_%mFgcen31Il3zSjy&&s%wZ zz;l6=ybRV5szTt&>|NUI0|9fd*%kEcj6p6%v4Ul_a?f14svoW^)Gi+?F-g)t}M`Nj<3?W3c@HcAid_q zstdyAN^f%B5Z>HGkYW(pU8Erp5A87f_<7}D>T+*N=6GJlr6Y(FM||*t4NnL?FL$XC z>n}D-W-?83TZ>MUkh#QC7T>iuD_gTquocUNZ>P9CtC1yFCc{Ku4zdM(jml^myQ^M^L zuq!H)@@#EM29CaEr_kmrjQE{CM5=;tHTgvob>-Bc0X=0!aHTZ@i>9-GqI$PJ@h6~s zAU<&Z#?QG0CS^V!Y?2_B+Eq7!BUX}pB%GWfi9W@kNSq-d`qpcs*-+{_wI1Ct8QDQH(7Gr1q+;4Ylo@6Cz$KZyO65cYE7UTfRdmcU8*Z1G&+R2JMTTI8KpkZdm*UCF63 zEw)*J`5CBWjtprB(9kpxlHmFGDSp)2v7tK5Du+G2;;f}br=T??HZQda7-Q)pA4dfEzl}0Ydpvr=)Nu>#^N+SAHAaNJ$ z?{0GKKVwZ1)RUYixvvwEJrtiQ2~$Wbocx?mulbV}7j>-OKB_HvkCb*w1OcLa+_Hj` z+JkTCZK#-o?}id+PlLxOsFWW{3RZkO;2Az(1aax==Ybza*h` zbRY5Tvg%nJGq_3yKr;O&@jF0hmF!Eruh(o}{`-(QDMF8d_Q*X9BiJ@JY(}(50&o4u zBzcJc??Oc)iPDNd;-1oQBDkY1_y&KDIg`|=xFLgN$WJn4nWGF8#x0ck3!|V$6<)%- z+k&gCS4Ii9tKy4_T3^vx6HGm1YIGZD53UNC6DxvkqbLJRpAq_u?1@kq)KvYM!Dk{& zJ)9WLc#bjunywX-{0GDZj4S|O^ird1+JLKTcv~21c0!c=>xDR`uYZf|BUb-D*}hHN zWEZmxzOsL~ue9@6S`ylAoi`duNO+Cub9_-v0j-J}+Exd5W=kEs^w}M5TiXeYbVw&= z!RsX%+u9}D2j4}xG8i%Yu~h^gk&hkn@mKj^e<7v2Fa%gXhZRW!(<2anYb)a+C+kCr z;6u#h5oU!Q?i#{_b;4vlNvJLmgRkd;N34ZBnyVh;(a0m#5#Z9l{vqW6Ez(dRIWO0` zSn&&yOT-*BeyVE@5@RV#B7@GDgVMBTs{|h5PgrGr^Fk$`C&xTjCFrMd8VNUwXUUZ} z(Fiz-19GEp1g|p8#%@&!=ZehPdsP04HI-bQqBF_2suAY&E!Aqp*iTet8I_oQ9zP+5 z=*p@1EV!?DhsA;QHLo6>gUctipjN%5e27NYjYC#-W4RlJS*iVI@ zZOeA82V?wM_SU9Gno~zurqK4U0(JTW?5*wj#k5W|XEq4`BVO>^D z6u7&s_m0S{4%D_REsB*G@eRHlt+h)1yxY27F*=s$Tu{ewR@jQ&)(*BIVxsrS+_-}L zxb}43fdxIPwSSr`=OJ(}YDQ7wg7+#BK|y%cR-E2M=TXxYT_1)IpDWeYl0;tCP>Lti zgtfY~HUdK)QNNXjkbio3IQD0Qqxe*s%ldi9k794YV`#rgp(8EDAm@=1GGY{)EA{Im zUd2w93B%~$o_RDkSSmJZI2^BYlX{>s%Ws}!;Dk*2pEEqYr?PV79R@KD8-?K~0?{2s z0=Ct}Zx}2Hx6}X^H2P=*uDa(OolORliTt4SOJHrag6l63XIUO5_FEn5$fZ9#hdTpA(=;mbJ*2AIcY(&%(}+Tk#P3IlRWhH9J>~lb9JmjtH#7WO(Ru zK7)@Q{Qgv7*>^_I9YXVYPzo&fSRb$@SekihR1j^DLn>}8BGeftM-Hrc^L?-fqr%fa z<;8AsA58iLrQ=ad`ovw%Ay{2Uf+O#Gp0g!PoD!ZCN2M4&-7mbJyc3?xv-eVO# zPs9cO2tnl#SPuw5XY}o27X{P`yij`u|iv+aep83O^;R!)bgBeN~>JFR6!@=?k_sZT}L+Md6Kfzw^%AZ>_K`hOjM-tdBB{ zovB}N;XcJViSAbm9yhkIj`DAoVIE^zsG3$yFg&c-OV&kxtU z`DHpOdYp@q70Ds+oUzw|)?4qe;MjXO`B-}BV+a3H;bZK^0fSVEdkwSOfe~gQ&#+u@ z7&z_vJDm!A5%cuDHnBG_@B5A-0BJ#j>GQ7WBlv6bdig8Kesf{R!;*dXN8jd8)!dTC!=CTfI37J2Cx%O>_&P2RdQ*W1Mp}=5l;tF zqYQT$UCyK2*d=scRlQ#$Gvj+11X9z$f7{ zqk|L{9s>6sYP<%VrAhmR!#HD;@#+2OzuWZzhoU>=m4T*}{o7~3fMs}lhjoY zjM*ki^$^(}^rF(*HngKjv4zP_6Bjc~A(`plrStJMi&#=LkOyOPNkf4;yH6(b39&br zUl$fb7!i3Y8j>hM*L)_nQ?W$r{f5|Btbkht9Yl}{+xrhwjt`mBpwASZL<~K4VK+u6uA zPm*Z_PvpN)T+!!L@j%gt2ROpHCvQkPDkG75T1KiK8OP~zaVF!nk1QA18m+JduV5j> zx@sQebViti30}z$e|%6gKW0s zqT&a|Lw+#$5zN4IMq)*!SRobVBxVM=beilH3z$W%$jJauM!VmYwR(JlBO~g)honXNGWRq)hPF^TR;C2W>=;uFdNqaYzIV*^7-3 zy~f5u>xYcl@op`u*K$<-D&C%)Q5q=%qquCD-LF8r!kV0Yr)%WO-7eo{+liNgRMlWt z*6PH#d;^w|eKE2BRwn06l>Uc0YEoJljh(BPW{<2+5Su%CIE~~)f+%}76f-Pz0}Pb$ zc5DRC)nglXr$7M&lpq~45{K2`uPoH9_SiAPBxTyAVk=%Ueg*}|LJzzf$G8X7?6m${ z=(q~#l^474sQ6NxM_KrYsnp^we+dGYkW@^ zsf&;ohFq|Klt}ik04O#Vh5c(Qg@Y0G9>=vYlvuk3bWld3pLx|!3np2TXt>VBGJ933 zo(bsuSV97H`&KAs6FsE63>ZF`()G2xv~k?liKP{N0@Icu=mcZ0{ zSH^$*Ukn3FE8XU}>D|x?=`E=!cn6Q`oQT;--A)2$<8{7#?a3Qvrrz`@m#z34`GVlA z)$X47J`}D(YP*c^*{jU7c|6k82kCe;FM6k-XJUfHM?k>A-=~)Cd|}PSuBw-l*sCNu zmJIZlYnzQ?LKy;{l*-DsTa84lPPrEt{z<5D^8?zGyGYWK7m!VI;p);0#D791jG$2z zy{b`(>ofesr=prHO?) z9JP>1D6~4xX|J9`Ps^!+7M%gNN-U1A>S(BGKvmqf_4wdWbR9|&*F*LMHY5Tqb4c>M zekn8Zk-VIQ8Sl&L3L1VY2V>ll(FU+YCAOe1vAWvYv_np8(D&5P-}!BdG1F}Apb3rw zo*N5%D)itvYe>QIg32xY9rAaDJTICDByKd%d<|6#cxH#}dO-3Nbkv;C=A8&P?P(p_ zFqO67q;&>FLx_V5WNJWf&o64j|2#z5XfDPf&o>>mA7FTK7D~^9Ow64H9reuly5WWD)DUav7y=Y@xIV!+qBB(aR)h#L@*PD>K2Xa3{% zD`|gP2tFTdD}4x*tBIs>)TJ)8-%^=z`FY?fpxwn=sC&R$e$l&l?w}!Rn?D8Ac9_$i44j)4GH?c;FbDkiU;hsKG&Lu3@{ zP{Pd~lvB&pNXECQeSYoVb^w zfAjawN#v89uC|EG+_}mbOr45DVRLMRB&annZLHw@2-OkgEUqRY&rZzgy2na8N`=(H z2*GUTN+%%?1|*3_57sV;e{v?;r`bNE2|Y~uCrSrOvV>E$-NT#~!e$BSS`}@ue#CKi z_HxJR&*1;8+&pX#L@zHzuv{Q>*uwoRj9UMGU_-6{^ITX_webgrtv(hbR{tItRL4mD zT`m3)xT%5dXizR{vJ0i`ajZB*X0kJ_|Nbjau0Luu>V1f^5a10Z8&EFnl(`caEkPG* zTnc*K8aF^}$c)H|^3}Yvevz+V6#t~K5xjFV-ay^oc`=H&>L+!~qGtGl3 zr#ODNFjlBs=9~s{B&LsX(+$;tm*-}26N4LXn_XgsQqaDphH8?9d1iwrc3Y1qrPXfh ziN9gRC-KLYp~I5%qi4&z&?Nr4=ekl-fT;79_?mb$j1UY@(&;Tis$6(l(pon&T42^y zJ0B-ul2=h>NlLxn;@}O5xCpKli|KSjaaRT!Cm2)k%Z)5}M|#s0DwVad3jxBDxIZHU ztJF-%dl!T5ol7J!6Aie%e2!imua%E>%5BT~;yH48htH^a)irt2TUNXl-0l>UaMz2n zOf-RrHSdWIE$e?nS6;diCsshyz~3fui`V+}AAwrD{&AQUeA~RURz(#E6lTYs)hQ`n zCfvjzp&d|Crm33hXX5BNJ~!Wrp<`LKf*rKelH;sqz87ltR@4c4=VC@c0K&9Bi1+^7|x}5K(xt3Iqp} z%<3Jv^NBE2?J0o^U3;>2=8~zYC8;-xmz03udY7P1o{13i85)Ouw3eYoAxwTCcjIs1 zDd}hg4=Oynn^Ox@H91C9#*TvlTq9y|Vq}R(>Wd{w7&#}(#xFo$v7Tma2?AG)fuH0n zHo*ieo8;~7iA_#F$3UF@C}}7|$(`Jf!PKtlbIWtHQale1hNoHvID zzejrk-Fk7ZWQR^PR>unA+T*B^$vWf9Q6OO5z`#VbJd5kE5!)wbV-HlA2=!wMv7`<=h>ZeuWbjm$OLVe zzjbjAr{*qSpnVM{=uL9R%A;v>01*AS0DR(Z=)#KuF;TN?m(jPN6tgel5p4oBHh%w> z>{qX~10YpO0(K!%-lG~|$Mx!`;9 z+D#=a>H&^Uz0KRbzP^i$>H5-zIb;#w~1BHna z4@2lNLTlQrKY|32S2P8$3mBX*o@(-TzSWtTK8ZvsxL}@W`>+Y@v5J0^#sQhR zrt3%P=n^LQZRW z68c~yK94Io`N8T43=&1^3#{Oy*3Z@2Ypqf-gl9LP7;C9$W9(w^g=$61FuD7G>E4q3 zS=+^@_81w)x@Q-8Y#*-?aaH@f3ANX4SBv@yXC`n^vb|^F(QU8yUiJy+N?GGd!EP_Y zQ;TEwyRtOv2v7oe(~m_dwIEx6f?jG7tW@`k}V^Zk1TZ z>lyxVul0EP;a|89yEEGU-ol*#|KNS3CI1;eRPpV~ZtbCzoQW&@wTI--pw^HA4*Uv& zl{vXFQ~V1uayNjsqMF<5$Ux_oIJ~2a)Aotlwl5X&cb49Er5rx~*H=OU(NNr7jTo_+ zEuKMMQMJXpt&0dWAxA(#NZmr6vfCP;zE!7gVL0Ax4G|$A>rnQKU&S8H?5#&jT=1#38&Yh#MBC+-2 zE?GtLp5}7k#CjN2Hm?a?Y!ZbT$Z}Lv*8%8Y$b4VQAMA4`;)^SFwcDxGlj*gioN)+V3r5V3AU{L0jAKLQ3s(IhA=?A;PV7#7Xq&$2Ls>{I z`4ir-8`WYGlU^vv?HY=jKU>^!v|jmJ1YLg%PsZOu4QdS0K(eBX|B(PK3V=*wsv!bB z&Qc|KdiY7T^^Ehoh*)XZFj0z#kiOe$VQS9L*pVCIz0=c;KIZPoGH%H;1F}QH8)fk# zG+?;@rjT1Bc~|*xk_&7RIKW6>3VZt9$3?R9_gfG065!kGjO8s!>f3eZyq&`|m>j9<3`Ovf0SGrFAMW;I z@_UL+;9sre!g>#OVAVJ`M3M|a3OV&Sm#3>_fI@3|sN1?q1h<_Gp*UPaE+g&xDW`-J ze@**YocM=Q3S;?Dy}FJY|37_Cq)XBhZA(dhqQNVBvB}svW+3P4c1=rArqG( zOlj;qQB0~UV)Qu!#nuxL$&`f$I4qj(CL-t3wqQ`zd%JiVhyL_?&~)Wcv(ugo*03Mu zgR?lYkEz){&QA9+k3MAWw1-m)D5WRz3B%>n(*}AHpIq@O`Uia-VJ^1Fi^FiSPjZ;h zGc?B*P7*B(BA2%LhNAY=Rh^H{ihip34UN$M>-K7`f^wUWlSkyYTnGUJlEGfPt?N*1 zRlUMF!tdoK@f6-;UBWGHl!<`3$e50lso+m*S;f0%mo4`Cs#nZi@z-YslH~HK*}ZCG z^a>$(zhg$&KeU!#x))KeSVLH^B4hek?ORI)sOP_WnFBY+Nvn-vM;EZW@i|VT|S|!O+2yMwDG2dWr?Axq7 z+Gy)BP^$e0o&l~#ZA-1WB1db#R(9?ZKHOo%iq!<&geYQk{iiv5Dx(5$Fyg;&1)j(_66Z#3aRi!uNg&ZA04jx#w}+ngXoK#0P9iU8b)9M)ML zN|s)M=cSd`h2Meam@%{)|8ewtM>ph4H)z z%PtH9>22*}3?pP-(Y)SWmoKVy`6A=v<(x>u;TZ!Y;KnW>5~aP3>$|n%DIwC9oeW!7?C|HaPkWPxcef{NLCt&=&)V|!G==* zlOOWGY9y+d1MW*OiAB=hY)+Dbc-_Av;5nox8zg9jY+=eClZ&A%{$Z~6_4y1#%yueW z&ij8G&yE0u2>bYv-d&3T0DCvAx;Y&B-*sV8_E-yk0-{RmZn8Y1U@8nB;!Ag22X`oM z6J_9fFW}!5U9C%K+J#tuwJ5eow5R*6A8$>2e{FCom2t`NItxSQvBA?#Q6gWAgmx;U ztW<0RW$=Y06&0U2!oO0+cSFYpB2_)>i$qoC zF$m5T5+mzWi>9fP+Nz3=gLX(es*%ysNQI;fk&rKGK;A`T*BPqnSnmmWn29KkRWmP2 zGxm>Vt>G^q{jfd4RdFTU#QWCzHKZ3+(%zM+m71cmyP>jlG2ST^8o#ob&-Yg5lWMfv zWgTdnU}~WdRLa94^?1jI(Z;ctx4q#UOG#Ne?$mC3!#cn<(;bPRR3u_2-`oG9WYr6-c4$53Lw#qBS^`N_BAd`|#)S9oWP{W%0LjV~=O? zClt<&g&AfY6n`EGgMk$dnTue@vEq}`A$cqL&r2kU&qj)@tXfJw+v8WPnk*S$OQM&@ zNw9i}d|W6W=aCE686SW1%IGBd$`#6X!IG`wq60v9%=!UB_zJbnefWQd$V>x6Exw2( zlE~kO4oPnd>?^Y0V3P6UGqw9A=v&g}UK6dCw&>GC&f9FOTlqO6DHL$Wm;o-9qHK>M z4kh@j#4CG~Jds%Bv%k)TWLv=QM|XI=)g6M>XsfgEI>ZlB_X4SEU_BD;EEZWm(#p<| zf1kLl+-iFAV1|RU7V6%jG_e;G01{Va_JUSrlQ6dtv*~JueMj z_kjQ+=53@i>GCFmi^7T97V`v={1g>1_nW<`Hw&qCg`fDop!r59_2>M#$rcuIDp8SfJhiG*i-A{*zDPt-iuv!H{>$ zhYI7pB4B=Y5v-2ZddCoo{;>vyv+%l=QE)oY1>lWCfFSa$J(C9v5F-1*6T^RXLKHCC zy(dAl;WE>Z8*!}iL+`VnFEhSIlc8S(W>V&&l%KK-@gFoQBR#?@=&5(gftdl~wZ{rccB8BATytzt+j>}AQDTnb zl%@_91w8$5i;YI|4i*cNLb)=sXIQuND!6rbDM%#;>Zwve@SLEq3Egr^AcHca${zKg zdveH($MLvraoCJ44No`9wXaPO#vu{&@n|SPrpb`T~|4m5Sw%*w5z+a z(1{|weNGVt@${p0vaZkalwnSCm-ZR;ipq%sK&vl%te&?%8nUJ8jY*XuSpXnPW(v?@ zN7L$JOW8ew@(<;sd_Xf4j9!EqoAX_S>0^r;q9i6t+_t4V*a7K=S+dV#mDxjsYNWbJ zRDMlr1sb4677ExGUz5&$!?V{J4|5SRd#rKK$(G-?n3ZAFTJ+!17P<3Mz#}C;KUvf^ zhdH6z)moaBi99{06?}o4l!bF4=H(ME#PmDN>&48x1OjDOnN=wD*Zhd*gv{~O>FLbR z6PqcsBnUB9qvlYTox`}02|pQ6^-DOR;n^ijOOJKqv$DiJpdN_~b>^ux`Z%cDFmHq8 zqElk2%oDOwlD(1-ap{5%?-nq)6cd|WFD$%C*v?DV6xM>)-06#+jIadl+rle6uBN%Z z@#J3P+yes*&2raesq!L7ugk4`8L=*%&=2YGz?-bgVb(?D%E~!rppPR-mO^vEViygt zOh_p#(_xnBRavHpR`=pbAm~#QEC2|c@{oywUb7AX^s;%P3T*wHKrVBRn7b4-L}*Lq zuF|B0fEDW+@SNQbjGXLHdJB6v-{0eQ$b<@%Snb1FZTTVh4FuSPhTcGM=~WzHsgMU~ zx+U_2&5n4ED7|A8fge}C+oc1RQ%LB z457n;^0$~crT038U1bE{r8Sv>I|NB=!qVX}|4Mo!&1(UsS!z5;eX$v;=l>0w3g~ti zG~MD(=Q;r=0UkWOWNkCY4yjB$-PzVZSR?U+90f-ywmIE5~Ru^EOru~Y^OaR4Ho7j>o>)LOy{NxL`!CQ(p81Ws9DFAn$~wdv=k z2Pnu(*44g(!3oYek=Z~6bZQUNXA?)$Eb75Ie-vlZ0DctIQ+Zqz%+aZ`(PublBC~PO z?3dNp##-OrnFZ149so%&vD#h*P_|?TCr)3xKMYxcln6~3JV(3#@0?7ni`Ns_^;8t>>3We&Ln9_de>TCmR}`X|LbJy zmu9UcG?-x~GRVVzoX1Wdp^UEEZf6Ztj!I~n_M2Qg!EB^!w}UmOcAqo6`&;E#(c5Ax zMy=M3Omj=huA~K*@lnfw>$&}D)k&Troc>(PJ)z z$5D%AI#A5U_9LI}u=o6v>C_CHjwjdtJ&&H8%`c?6;fpz9HpyX~rDwA!W#6efOP_mJ zl7REtUxa4jEGV3?0`b(Qkf#)HR?Yq-PiJO!J?$myH>q`T**p~7YZsO7XMZ$d_Ur>Z zar(ZT0y&vQnIur;?#kg0hAm4LGKz+8O@};^RxKlwu{DEN?9Nug7;XK}@^hftw=K@V ziY-~2y+>(X>=-{t4hyc z55e|~Z2td#GQWYdRi+)$R%aG-v@>4TLx4(a{ggUw!%pW2fSMt{W{$`9Be!>mUSQkd zdrNx6u|ku<+J&br=^2LTg1~6@HwyxX-XAukEC`I~{txmfl|3ST^ElNrqP=7$CGd~O*y&|CzZjS_C{2PYe*bT{h;MIxo>;p#Icm^5g%ZwB6P>LHwO8B zM4UJ?3}9T+g`L_fj;PpDvb`>{o=2%5%Pk1vKjko^0K@C0JO3EjUb@yymL4}^y-C^s zDr0hc?z9u~MSA{=^xSE$Q9YyC45{U|yb@|i_YrX3$<2~j@o`~BusAz{#nuhOM({C4 zAfZja(WWt#AJ%vhK^7jpPfrO#kdBAzbcR)w8;{6BzmkD{3W=M`I)U9n}B z@8y$wc7ih_E4J*k6Q7`@*<~$xf>Ws~RoP#c`QyO#zwGpAwbKilopaT;EoinrpB{khS5S?5L9;vP(#$po z+nfvC$J=Dc)gy;IK@B^vD}TElig#6(0yB^!=b{wcx79jc9D3SRIyEV5Pkk}~_2GSSD4V|{ihZ_BJi z&f~-(0E*Ux*)TE5@GUjKt-}~G(%bcXsZ>fGrYPF^=E?3y5CihUpyfMuzm!ei7&zywanTH@BxK@~04kC{{Yy2f+~|5Cp;w2m;4u*$t5fX+T7~ z6(|oV+@mxC16V!nKBco^=g<)-sgbFkid8@jxx%gCOJH?S&IE#C;+xe(13*_!2I!U;A4Hy4SIwJSgLa-l60N5%u&~x2^VuZunppfOkO-5GT7KhHvs265O9g$IAm>qQiqjq*>ha5-~ zK_}#nnR-Hu8M~Qk_@R{Zv&_)XVsg&&XBhVy<~00hD5YI`>3g--D+I-kQj{)v^;e8d z-O$kw?K?3GoZi-H6Sm$;H}1A4S`OT{NNL07kAXg)-tfCZZ<1I4D;=@!AKHVX+>VsO zS(YhtWLT-|Qd&#yUx$Xowlw%Zf(7x?Bu27b&gi^aiIMfII;S9k>%~g2(r35@Q8`Gp z#GM-mU}z$F)P2r5sFWYs_XtQY4kb3$+KcE#rt3y$$q)oL$^I*hWBtlx@2_U)A@a9j z7tl8E#}XM%DNMvmZfGq8Qr#0{3zY_wag%W&aHdN*K7Y7VmIsr1~_M& zLV{oPO?Kzs6>=J@#FiA<`t2g9Hh5^71eMBAGwUQRkiZ+gtHgNtWPwV4#ArwJe0*H{%v|iJX(fz&*}V{l7PLNBvqkFS0gjy#f4|98bo2fW z9urbu$9Y_R8G3pz2f7sshx651X24B{N!y3< z%YNj~vNr#a*c3i08seBF(MzKpkjQFTU^9QXNyxsCbp(>!hJ;M1H#_9bRQAo*nY?LB zB=YIoF@6|Q{6WgD;vw+jS%NK;9FkfgSnX0-ONSfsce(psivNXlO` z1Y|%9H?;`FT8f{b?Jf_+JAgaGa1q-?RJZEb%CcI&;pobl3bs_4++Hg{u`zF03531y-n4HeEPA7>TRD;##DsGgU}NJE=dv zu$HJ0k}OhYX&ebAk`2qKy9b9P@$j9!>I;`nW+0m=CS3##=(v3!eB3yW6Bb3$N4 z%!#)xc6)S4n(*00M;i=?#x`_qhS^Yy{@mBzV6-(%OOKBba)xOCl;2%o7|wxNg}Y^k zm0exh65MnjPl7Kf%9p(QVf#{+pn2moPmI89tbmxQaIMqC$Hv1<@#A4qBpj*iZm9N9 zL7lyQc8}t3F-o`#*RWvogLng=R-`o2YpE>Hu4|c$HH~N% z{$V6|3Bido;512d7oP>V)IImY0%VYlHJNwa2jrZXhe-Om2J~GHk6UxFi0@6+R+Fl6+`}>*gFDi`qAJ_+=L_M7rpkc{{-!- zM+EAsz%DH&CD?<@or*B=Z{nr0Ewy^u3QIoM9vJQncl)ikby>f-56>*BD?L<>o7Pw4 z3ps#7jBCT$lBA!l3V8^A)4e3`Fo|D{Q}s*Va^R`{AsHZb71QjE?(Kplai6H|lC1yc zI9xfG#9%n62D}C6~;-J~t&Ml}(QuH9Iz>Bf6%A{d%QJ0Tm+4lD|_YeHEQ=kQ!H0U_Gp!-(_5f zNoxvnAnMhaezS^TznMvn3;~t#nft{5pL#blB25RxV9RL3m+HdDfc7?AEIv{pGCaXl zoLW^V6tCkfQu-?PGLq?hQq+toyYByy_9pOAR@eW3l1U_NCI~@5(V%G2RE@?~FfJJg zIFSTVTyUw{(%M#W!x;fVhz2TQ99vthTD7&ct+sZt8&%vw5QszxVih7)QERu07E z<(#VjP#Dl4LJU?JntOLXZuLA0qWe1U_KIkfGSz0o?cSB|W8ExAeJRN`?U7lV=AA&M zCwAwCN8d-u%K$r0pPL- z0799#z;pGGO|nQm%o(o>xwJ@-S4N+V}uM zG6=4dqO*)jSp>D!5vM_r1}2E&n#zrH+JR51U#hRoT3<)}P-12$2!qwl5N2B9;1*^? zT6vw=IY>)>Cp)pAm1OEKO}u&C7UQ-7>V8n#4JHYFE33{LR07Y7^?1&2K+W!+MCv zMrAv8!o-nEYROi8k3Z$nZ^Xqqqj1^uLekK64sJdwY}qr1`MH2WLljUFJ)n*orHpIx zh+O9N3is2(6^F0e(Uf~s%>002;GSR$mUtE1lPca-UEyU_9_mV9u1kcs)eyj< zs)D8N>$hr+lZrd(%@T8iIMNg?q7alJ2_^Bjx)yX2n|7CzvA=rxS8_x zXLO+wAcCh;QnQa5hvxZ8a{A-O_wOvDRJenC&OSEIymyydR6uBh0YI!Ep-8Us=rJ^QM=)Vc7nzo|WA zI2G>hb|Yv;#$u3V6P<8MC^}f3Id>n_(m9L3JWJv1*`F}<+iozqqLbDTm}iOS835|BICj>y3ZGEe~z zcmOy`3QqjznhznzRf2#&_d2Ij>5K7)#|p$dhw$eW;>Bt`BI|MoY7~oPkVGCmO4ome z6e%4aaz(>U19D>ho+w4KNe<#p*8#?x8=A&(lLsH<8hz0??^>Kfi_PWN5X%&uXyrMB zMr_(44VxL(rn^ynOS&38E%1@5D}1xuJ7sqKhe zRZ2ZjIbo3$@xxS=saE&FUws}W3H?F^Utrj1f$>?Zu0a{ZO(y;n!xxexU4I6#vUG`g z3LMv&f1!#Py?yncNcWGuDd@iU{N0D9GR**$y0~0qM9w1PDCh2@p~Wj_?f{;lDcUW- zVrGx*vzx)zjfNg~nU8tyb7p3BS!OZ!7&gV=L`Yx;Y%cr**vZ9-GxAm*3GPTJn$_e+ zJuh%=uH~_$4XP_kT&h|&Z$NFR$#OuCLhM@Cj3(1VrNX*IRp*(M9gc*w7eruF@)lkQ zbEA;xJCYb`8@1b4>&bdtCi7iJ1L}bWA zK+~JZgyj;Pt&$5k*9#uye#0Tm?(n<7d!ivp5{ULg%7<=nXpzCW&+o?)|A7jJutn@D zTy!`6&yXxaF>$NApm;Lze9#T?zwrdif3Y|=J=R5lK`3MknHK*#KfxXN%x&E z=vfCSm*H3Ar~`x|;( zBG`=S%Gj8hSzHxW$g!XxyM&8l{lef^jw+Yu3BM;AetSgYbujKGv zVK3Md%aAB^!++$b&EQ@oFLanPhGb+gLXMiso(wRKIrm>v! zkfAt6Cq2ojqwYwpZdztyN97Whf3S32NONg<0R1$cz*Y_Qns!>UKZ*NE_Z6 zNnBVQoZC$hOu{?8e6zjOO=6{BhsdR`q;)rjnGo~oglJX}8DPNnR8s{CSSr~czGT6; z^it`u%@woMh?j00uuDvhqj#m7ZP+j zhh!flsD{F5U@3Mt7RsiwP?Jdfrc#2`ue2h)(xY^aj--V1f239KJ*`DckAZ1SH#)@@ zLZEu@QEAPr9RVHifh6cdgefzpNPIlF;!gcO82Z%#P2xWu&CE7T26ljBUfXDOcRi(J z%sH2qfdLct&&|nnBRMz_a6}h~ znmpa?K%58NDI11-RBs-kI{ww0OGUs^1Z1eUVWc+~>bBmke3Gi|P&0;M%6-(Dti7Qc zpXrmj{DHeZEv_O`hDdTQ2ndQFvCFFMt4LRDB=}V7cib){lCi4c^75SIetJj=GDWbr zy3hOq-xGIXK+;s67hy47bTVuEtR`Nn-2okce@seBu&3$#PtJOkN;z}6o@0Z#o;y}R zUE$=RCab=k5AhESk%ii56*fDoyw)zWlSw;{%^r7&T*YJo%u_^KxpMGt-j%LA7Q0?W zD%nqoe=0@Gb!*6PpzG7g@ z6^&D=+Sw-9mAf%4$XE3oGl{2@DAi~EP$$elBVpZMmgn8?{x_}X~I zJ)IB*Px(fe2P!l6E30;{ z$%_`k%sayPHER))E+@aV=$pf(CRhz6(E3Ix@nQX^T>lwmskI~dg4;Dh3yN=fzX!i* z#~vQ&z72|+gGe6@==gvK6`NfDc6|MB+e@(9jy+JUM=|2lRa}95B}SPD*D+w#1aFW$ zrWSXoQpVazSLSv+${%%JIzq(&ma~Ufv+2}sDS%BeSD)ekc2|5nq zuZHcEI{G&&02D<_w%Q+gMN8KCC($Ut0ibO?9Up3y3$Ea{%QGouJh3=B@VS9JicGj+ zT(sc10sI-Ba6%M6e%^fz?}S3ltGe=*O`6TA)w5Mu&#snkmCuDQ*T`5{HU9c5q6Kd5 z2C$^@`f(k%1;fx!IDSsy-lNbsv~1GX*vI|j%~{=kU3j1ga)B9+uMHy1jW>)-PN-V) zK~>RRYvX&8$I@xhiUn7z)vEXNf;nEDYxpQEw%GlYsF!#PzN~{bHM|2U zZSIWZqHs$+&{*Odf!zY{fEBm)ju%nYV$nN37Kx?UJ28WQoOg=5_p3cUS3r9g+KVSY zff-*>)^1d$|*rKjwAFy&h%a`cw%A9+>$%q9`o|M>3PM6Bt=Vk&iW0!cGHRlHIF zg6$Zf2&p(F85;dxb}yD>&qlO%0jseXZlvG!^_I+{N8g&qpMkuPxuZxDLy5P76jOIZ zwjX8npTVk8L}d4wFlU6fuI%KxpDQNJ9gt-iJ0oKmvxSG&c^M~=X=GokqdLD;H>c7| z*O4)3bpIZ1?hX&&>IyFUMY~P8zE+_MswgOzSrN)pQ1|oEIYbKNCMJ@#%>@ya6N~4V zfo|6Nn)tcs89gsVI2<*Np`Z~C(TU{OQlE7+^*VSts0A)W6v_w+GMZm4V`q){bo;=k zaqwRRb&~%`Mvy}XOJ`UD76*U|G7{9zRRuO8o(gfz$P?p16QEEAhsq<^aAy)vxlw zS0#04+vxdYyn#~Zj>gsT*Ij?w<9x;o!|qXLbHC_u{C9Zt2>yFy>`?0uL51S2VYI-F ziwDzVu6JQlMguiwhVW8-@>I^A$OFu zl?IMytTEIF4sGr|lG1hPs!~AMhisEp#vzAAOWGiNxU<}29JPk7f}*8L*yn6YK_Ua* zOsn8M1tt-)eu~FMjlRb>{z=rDgpgk{0lSrS~Uh2j9qi-iJyafllj0h z`D-w<@DnhT1{(>r5%4O-@X5w^xDU^?MMdJf?O|vu&MZ#YW_uj# zsN8+?F^T+29^Pl~%bH*AigTW~xIfqzVeZf_s%{GxRd0=VSGF#EMG+Aihq6E;6kiy> z7@6~3T^LvuRQOQY>clU`mf{tq#>X~7Pbm=9dUsGDYUxIHT(zTB-x<1$t>|O-Ij|pF zCk2>6t@S+-h0Ep8unc3@wuWv}GyiVYauZxhgkD*ou}V*Y z13|;4g16i?F|q!XP)-as^@?@iZa^-w%;N~v1jo%e&=AXLE!Xw9s}Ys_Tj)yZ+Wf)+ zkskDc@Ds%zOJD6CoztP3Wa0SQo^`~1fv08R_@CLKO}r|53ph3;xm0hpTLE_aA)jZ+ z(C&^#n$;$jRv+n`B?g-f2xg1rZ276axSEa#Y)X_os$Z9- zyS-W~N!+deb4fD zkUSFl6MIWsBTuKj;A%Qf4)Mg|3p|f+bl>0~O(;=vxvkD<*?d?A0-gWxF36JPRqw-oB-`e?{UkQuO{q9$v4S2$Z?j>&c%Pl4$D{LO{``zCJY1x#iAd z7G{rXfqd@HTMne(HVP0%hk0Nh&MIo-Yh00*g$TUST@9W{rS}}E@pw${A!{A5 zjy{~SmmWayRJyo}So#njn>WQ!)e4ZQSYM z`2h$c79Wg1!H+L_+E`Z>f6n%q;%*ZF;k)i$mIC`yXvkIAP1IYfJ8mo7PxIhrq&(Ls z>fy0!kqtM4>Q@Dubub#Xm+Jc;7=w|SfnAZLfiK4!##=K2zDB!|4-L}U(@X0w%qme3 zm+)c|LA%=xbW@X(tZ{M2tEB&=_BJJNgj2$u1nMWYXtFJC**5*#DarS2iw|jY$FL55 zPUK284Rly~pf>ky1`0o+<=gphb8r8-r)Srel~TEc0tao49R8*o@w$Gk&Ju*u;T-8T zw7W~yhH>_@8LNQu6No9n99!M{(3*YG2HAk2d6Y?}?fx#x7GMu6Hn@WpPO3eD6WBEo zT=|4D&~?;LE8BwjoHM0p#h?+B%T~n-DLyE>+IFer1eP^Zv@4$fni>pCV#`9F!6lh- z+RE>jD47%p3MV0oq$$WbA8Vo+y)`huzq?rzQ^-iGia3v!$0eC6 ze~gBo61Cpyenv=1);#?YU-*XKh3wgdpMV$TXoxoV7h7HS`s!4ndZTZ>vt5f^JXU(m zD9U;RO39MkLREiC9+H7j0F98V|B{1=OY~jNH)Kh}BD-(V#VX%*8JN{TVe}l;?Mr{` zMOxoajix4>ny=Rveo6$++n23w--R~0MHpcSIbH9Fcp!OxTqpnURi!U`d_VL9uUfds z&}eBoSm>AEx7{q_>fMkZy;aZzz}Lc1gZU8Uk_F$awLAur?!6Y@YBAFS&(l89V9y`m ze1g~e2Rr=}z5=TOq(3cv&o<-)Yh@?cQX8L6WY-9{`A<58E$$KE2;&6;i2u04Ajiew zo>#zhqH&h)lpRvgZJf&s9n;2s8o@3%zvKf?JRcX1fI$Dmm676=95wD>%ym&FW}$89 zl70;)MJGjC%1lAY@i`LQUh7 z3S}d&Y@P##g)m`Skw3G1GM@$(MlDq6c4uV5P>w?U)#zZ^fo_HT0m|eBl5So8YiZKk z<_-mMbZAs(*vD2&rEGI=@!bD4+Ppz){g3f{=It3R=49-0&9k}aMHY?_*;tiW@mRNZ zr>`dY;)@#GYA3THqJ)$85~5IF|Bhs?52et5WP>3)pvASg3pG%#YM)v68Twqq=U%ec z`BhoWY@9|{m3$#{p2{Jxv=c#X1klpRgpkaSZSH>X&X3s^PR#5<8+w~3hU=Mg-0`nh z)Nk(D#T`G;2<(;F@liCshHdP+(trzp9R?(f-C^wJCAY!2))ai3G8PxbGmG2I$owe3Y zrMFt^fv!iXWue-%!(lnxJA(D!owj=@))SKg$Kb!f{-EIU zHWONirh);vxxYYWZro3Hz`kc|AImPci#`!&I^6fK9-c!m%cL6*q*5l^q7{JITcI5i z7toPlMYQFVLi0#xu_xye(+|1Y$9b2@5T%dJ?bdQS68n~=_WN}ZZ{`8#K>x7`%hxhYg z=1^zF_6IhfdpM(w{TjLsj~!v(Ulnv*(9ks?_JKW`$)m;~d|NmC7|gslZuC2S({th% zV;|y>qY+;Yn9+z|TM}qsOQ$392}|sX5sYaT>62wh>sg1DK6VYzJ1hxvcpH*k@q(Lp z*f7&rBVN5lHLr3fGhz03{|NVUR;{hhpFRK!MHOmWc|-R>u|@F9=zQtRv?)2@VeP~Q zcUTj|2F*7jmZ}%8ZbuJ2PPgKq|MIsh)cH!3{D!~P;FElKa~+Gl6(0 zt2b`ujwga$#I6qqP0JmD-c{}?o9r~Y+;K-QvKC5{wJv1IR);LP*ns*Ty; z2DWM~UmjZu@W{So<2Dcw>=QCV#b%VmD#olwy~UJ(c`EqQA9t<4IOS7w&#u=Ry-(}= z536I;U;|-*OP@eHkXFkXtP8Y=jxfgHCcdb4#z^Jj@FHUO`{4I%1U5>6a5FrLDb!BNr4s1-NbSct&=58;7B?p zgrYW4Qe0k|Qx_k$-Ve43-1Mf6FSB4NgD}G5IdeFempso1p82PY)*rE7zTsg0>UdaF zh!1zwF9?F#!1V6zSKP6bx9%ujiRy1ATq_hC>E?6b5H>;PiE{$_&>tC`0oY8=-A0CU~PTCr##Yz4|8Mit@A1D3Ff!C zH(838um7}8K!g=^cHJuN4;Y?t~|r@aM&%+(AX=dm9ipY7bNR325J*e{}2 zx`ZdY27r#w3J)wun3Fs+EkO_jQ; zD0d#|S&QdlKiMaasS^d?Tw6v4Zkzkv--R%%(SIh@pOVk}nmC0>&}n#HlQ`w`5sz0V z{+wGJ#6z26O_83}^`{(~6We8BaRhLi@rbFXXBk`)<}2l2(s34jad6O;Z~5DFQ#1+& zElk^ztMnw>0aGi*rCpq@6x6{{hzB9jQBkPq7rd{DCsIB}82CwxE!Pa2mgpdxu({es+UV@K65$h#(X zc>RJ<4iQD%_d!SRSc4~h1D-VAsRsV!_Le+5uHqnN_*u$+YJRmYzfxTCdFh4TwZbnn zKfTbu9%w*tcZ?a9gYggV#Nc1kXL5pv!#e+((;ItRt1CH&9^9Irr{MHR(EKc#({!9> z&g~qYC^SCqm!RKfu(5@Ej-2MfsW}@JM!neK?lImPJ1r5(b7!Q-@7`wPZ~6n{Pfm~j znPB|3(qRaTP*sycJ`is8m3HJefy^Za|52jml-qIt!@<#(B7*sP9s+3P5cBKD)&VaX zZ}CgepSBBzYi8>qBX9Iyesvg?fsSpzsUIdPVWF5^J6!K&{n0{C%bB+O7v5vT9kgk# z&dEf@g-gTFiXi)-Se&7IB4tF+5Ocq3cYe6?&4shPZO&G8#xAYOg)8^mIGREeu59=) zu$Dmve}O?D54t*M`K80LEN*c7+e;*GzVJ7>xode9khTr(kk!z=(4NZOiyqYHZ$IS+W?srzapj@<_mZ)e-!t1(v{Jj8C?!v&_EIViCpuUaOOgRDwJdk|_MRTQ z5vcO5h0{!wkmNX+r)Y4y7kyxXZ|Ubtjp0ngz0s&sppc!Rk$9uF#T%~RaN(Yp)pX%{ zwSrl0aA)n^3Ic7dY+`C+7@}EbY)V0l=H7OX$gJ(s*%Bo?-xL#Tujr}R>85=X1v<24 zdFYg55WeT;Ci71z0}pyuFAouY>JA;qk!p&5rD(-K_wHc(yRhilP=hN^4%D;Tb`C`X zJgIWc%{VY#q8T-i+ajchg}U{6+W<9*tzytyY|vKs#vL}GH1=IvmhMD0>cV?b(|B5z z10yX9Wn_dPc7|w7&OmA4U2AvmHVdDyyez)XK#o+okw?a28@fWVVXnK$pQ9?VY2;|M zB;jMkb*|wBYdc&_T&VHzRR17Ibd|cM+eIo@MW6HHWu8-4N?Ip<=Nd5%BB{{6a$K|n zbnu6uRo^;7VM6Xl@5A62Yr1c~SOX^N_Q=NB(0$n4&)Yo2&7VC`KP9+dZT;b`Ai2&bnb0qC^saeYRTEd#(-Y5Z&G{M@MmQvowX6M>HPC~ zb?|pkMms`9OB5iHxFEM|ebJIJ{8`pkwB!R;q<`PjzdY9+Hf3$mYby~kH$)Fd-G3M9 z9z$Kxl4EIt3RH~lN)RdmqoIyE9zm4d!vNZdGj{SWI7Z0bne~LIzUldHF;6JKDIpU( z)Ji-t^u|4^be}Bujorn4T7_JVwQ4~?SV=^SwK#_s^1W_w#IpBvD0XFK|KQ!{Q%Fpw~hnZ@qHc!Bkf=ZDS6{rPL6LCJu4EQRvfuEpgqYs!MAJtw=3aWHi4Hp zQ_1@RWZ2-E`DxL~ObJ`+@Aw&SY1rK(x9k*8HOJ{MRTksYo>f%4AAJ79NFV<9YA!}@ z$z*dA`~+=)L{z2R2tl41xMLWm%$9ebRzBl;*-uB?Mi;C(w3N9G+vvUqA4nmcIcE=l zEg%(cFkZTSotYhPvw##aXj++dOzz(#iWcqngx=~d7J?ht@*GYj8U*CcpGpgO06*<~ zmj~y$-Mv7+VC9vl|EV+XUj3WV$QkBd>@bV)z7qA9dhNOLo7gFs%Jh(+@z22a-DwhGG@2_h^iq2fM*12gu; zK`oa6Jnill$Rp<)k5R6MuWig>?wJ3j7oE*<-L>VQrd?aObnsJX-X9=bYKZ9fqyNXX z2a^-@#Vs+d_aTzO9wX~uk)EdDgNdrNqL`y2|ES?x0$Gwkt~@ARh$K7KF>QxgL-ED8$j{Qfp^k!2^92g+Uf<;>q zN&ui-w;f&+SUt;Z9kHPST+h{RG<-&-HqQ1~Ked!w;{08kb885j_vLPS9fFBw+L_p8 zduX|lt!^M4VUP(Z6u+Slo`#q!2Hrl{Rzo}%)|FH~6S6Y8k@tflR8)Bm2HLpRr%*9c z+|Kr;%Uuf+uv@5^pL2gw5L{}@THPQ6QD;B|TU|Au5}sj@)PA(m#X%o5yqE8e=8Ym% zPNFC3bgWD6pXp`o8=ADj;bm%9-ns1TrIJ1=V216zC0XMqaO$;vCJ?u#T`4L9*bCf2 zJWB&)`yT`##cUSCGmNfdi^7lLO0iVSaS4XB3S^Lq*}88xYWKHRUDomIf15xA;)4R% zipn^<>;Z1Vo|Y6(mQ0wTdz0A>;WbxvTl|5do{3`kE94jUn3|+JpE=n~OfpoAIaA=& zokW=79RN_aE$~PT)BV(xBGE?4$6^j;SY@#C*)$+FFbVf0lq-GqHCrr}9BdIA=1mQ$ zG&!ulsgOb|J4wwaTa)kvWzEo&CtB$V_GiMHgf>uu<;_euZD70i_slm@^1&vZl2*3^ zj7c|KsCPWP{GSH8%=uzY;nLtU`6;@ybY{2z3NMvQ7)VV2L}u1WoR|9Xhs(TjL9uRR zn$_ZYo0mVlEw?P_u+9BN5S~RSRMY$dLM<>pSFVZ_oyGdPau*hrZAs;8>f}q5j4=6h zB}}Cu)Yzdj5{r8=tQd0ICyH*zX_-;G=eJn5lTU!lf62YPN3uy-!xG znEfn*=ZS@_=KSB$S)$-~95fP2g}>tx7woY`>BI>!u3e+!xHf(0sxq=p#{$~zt$*Ci z4E?dSv$T`bl9F)x$ z*zC@HT;dn%y#2Y=`$GWta(H!IXgKGI-LuAUh$ZJNhKdaq0%d=Vj!6ymPj8%Mau=k5u> z=^@F!yvh&_d-9_b0**g{Y0K1blu8Y=P0jbr+Os6#D5BlGB&ob0{MfN{0S zcy54?3&(WXB?2f`M3b2f(^M!BMC&8-VqcfU8vs~mR6Ue2(=4?0y1AhA4YnirmUsf& zJnBC|oU^`$#$@qB`GKHG9fRgDxyto1rR){0ICB67zab6X_=K$GYCD$D%QH*ipvorT zg*0j&O@w@6X7p?*B}1p{D7L$w!-T;a&HH|)C!Gg&ohaCF++koOYR~oXre5>wV{7;g zsEWFTjgOdNK-B6kpv(9&#noFo0rQr(m5jfueblD~{7%p?lB!^Xl@rg&gk>t36sAUM81JWV?*qGxCY$X@FxCx}emycywE$#PMs6G^ z09>(YMJp~qcWiTyN0sPCSsr4wknw$7yiF*1D8I?hk}?+1Eacl)-1)xXE+l{V}k^vl))`~X1;AolOQH@ll$2(ZB7IS6~qoV$risf^Gx@d z1Ix(j13vNh7K?5c&ioOJPUc*Cmf8-OdfX3@9#Vba=yzepQ8A1W0bBLEl+`f-*6J}K zqKz8=UW)w&k_Cq}`C0~N0$IG9vG%ynWyWIDxA1H~cZ}$YpHQ2dp8eyapPLF~wCiat zUhq20!wc88Axe5)RzH9|Z0-Vo*_Pwxfl&=zg|Xwvv@H#<3mL}618Q>)e2to~X})Gb zYvOH5N>PR_CL5A0(^W5?Ape_6hdm8(lw>EjrZLk%M-vtA*o+iSI|bwt0BJ={xn9Hy zDtVA--UNko3=Ss_Dn`t@F@LdgYPo~SM(uYQkk+)2+gja^II=Rac^iOaxmLFbLRNn|N!DB@ zG81|lCa(><^mD9$XQc7QE|;@DQSuc!bKBrIwXB6tcq{62z$0mTuMU0ePis1QL;`9L zpKwj;BY~4{+z9Jhkukf#x#Te#@2fBC;YR=21~>iy!!-n2?>R6k)v=t3A||dq#W75YTu(`zOH5AcvqZ_yc;g=UM8gv{ zkSNga$gIg*BY_Wrk37>0#5(CQ!KZilPv82qPtVan@yX9I$_@Gya91$U%Gtrhzj3=w zJX#j?cfRj$^QZNfM}I40LF1aB@s&a2BWPT-V)DD6)_9Gn3AV)j{HK5Uv`@dsr`1Kz zPJWMxzk_J0iN6k>th^=|`=z*__>rvc*L?Is@X>jE#G^m*s5y8vQSIgg?d}fRogd8k zmwZ(8$I0)1+C+wA=KO8{X~(C1`d9RZmC<0FV}fypX%&BEHeU{AGfcCo4Zi9Ze02c3 zKEpn+6LGM|=cAkQEHS*Vb6{W)nOI&C_)Co3??%^`jc3x!y+Kbvjov#HFu%ZlyX=@`ux_ZNXq zE^=F7RWhWMN^08Rezw29LZpu_v`{`m^s$S%iCxyW0zn~b8{7fbnUiYr*^E;@=f`Sn zSqA+Xf)|Myrk`K+6J+m6xnvdk=qlYgp!ljxim`HwuOf#02H;7KF)&-bM!77m9u*Ms zjtoGa;Y`JLd6*g9>d*ZY=0OW ztl0#cf{9=}U6)1E=3WaR>&p!_eY5I#%BvO1aQ=7xWij9%G;VdX6 zQb4C+^963odd(02Kr6vb{oJ7lE6D+#QD4R1+Bf!*9dC7)F`f8pp1bV=cUs*u%r!A3 z(3G-V=Pz0Z9SHACD3G_jr>ouRu4xkn%{J6A&A!R(S(@MZVnOlOYm^thaWcMM5dK^N z+k(RlrLpR|r5HnHZZpNR-loh#H1E-k#|HY=zWm@I&X15DIeglfNvjQZey(OUX{T~T zE>{}lxyzU$Oj~?M1*!Ub_d;G)%4S;Hk>k($@OBzgmSM|4I@iJCyuVLRs{o%p&9lxY z0b`lpFse;5&0f_Snx+$0IXtSHr>=-r^0s^*Z^zr)6Yy|bm-2L*eedxqMGG|6+9f)F3J>L`qQ>Ml~s&-S0D>hBIpnM_W;AfNvL^~OxM2WSRPM`vrK*o%N z`A~1|UloWVkCn}>cRXQfd^_IBm9sd;u5Rf8ITc$yTOq(JzM<&u)owfw*dqs|qG>X@3*jX%ME6^p zH*0cy)y`FU+z}IRnjBiSHothz&QG7?0cFbv8YcW|Ke{1gHP}PmYx( z`Lq$9mx$%U4$l3d)(&x9jCsv1`hhg2o{Fs%A0#Ix&dXyqZaWMjI0-^v(W?bKN}LxG z9Kq->w$LrY)2ZXU!mYDHow**WD2YFk8$yBX!33MDGQ$JF)K$X2lGn*#0{lijEBJA2hGYrEW}82FhX$f1 zNFXqXctsk=d-Y#D_$|SL-Qp|q;L#S$+G!_)c(w0mz5F6D)B?uBJI(`o0kQtAIP9$3 zRPa*=kKHl}KjYZLFH$ZkrQ}L~6lUrmTn@;pg0n`Og=0rRhKcxurvbB3=VT&2?MZjo ztiT=5lJqJiYvKx zfe&^(@YY>=>2`l;Z`{KqmWUg*xsgCzZ{Fq&d-vuuIu2?&JHfubb&GGeI%s#5+P&a@ zua6b*&carH3=~}R5W=!p`qIC#dpe1?kF64{fb?Tu^YWme2{R}2bpZ_h-SDMZv@H`4 z$d*Q=(LK}2nZ=T7#~OQQXJSz<%F#^^i6$^}iB_?49}F}aT)?Y&nA9=<fJ)fQQT?Sob_)}^9 z1V-+T))YO9xq5IpyXB@X_Hy~>tdj?)kIt!IoLgqXY0+Ix5iYe3b!n#`{wiD4@B&!4 zs{WKBVIiSuc@{JmS$b%4GzFIlVMvtx;b|dGDXpEj8$&C^SR9OrI#>Tfl$n1;`7zVKQ7MrX)ayi@DfJQe??d6J`T--}I;_k~t8 zW~66ZW=@y(_;2;11501Z9vH}-?QZ_}%s!27kDdt#JXUnoP^^rR)sp9XJ|EPva8iB4;S%jvEf}7M!|yoW>>Fx_0{r^XaMoy)&B1&`5h|0WF&QoV6PKg5@|gT#FN z8^c%S96%B+sIQzG`{MGcxrltl_1$0ML3cDZoe2FL1YBtwFS+$hQcy_@{wzCQ(>Tp? z206M0pf-0t`2XJlH0a4RfZE(sctuh=TwvSpb|*6}JFA9W2eWC0UF(j3jv02vQl(|u z+&fP|J%Vzqnd6+H0V%g%rbbNk`|2GLftu9rIGiD#q!4tb?pYVW&ULFnOmzcpQI-I;lbA$Smps88VGax_LKxNd z?ID&^HFLRx(GL(00ZX{tZL|ZDl6myK2Q?T=2v}Igp$J~K|60OI$+LeXWAt-upA@2J z_`$O?^=youW#Hz$3OFLd@N5nbMHsqM-tL~ZTYAL&7td3OSxse2uMji&A^hDNfzc39 z&muEA6OJtC?|R)1iMKQ3dXRD$eBbKMy9?$_B(&dve-!3q?M%my*)rx{z@%5IFsy(P z#Yo2Xq+>VQ-P-Pe*Sc{mESnz%dQ~c3-|rsT?4tZHGO(On1Gz>I;S?UzFBQ|%>VC~j z27?!#7tr$SNeD54xAXzM(q=;Dp`?2S-c9V3{?I$-=$>y|f9@bnb!T!WXk$3j!!crk z<9DQsShzM^tO%_`BC~1+al@dcs87O&GSKC;49kIWWN*)l zMbG9<2p2{N6+JsKSAWPC+JUUJkMk#6Pd9?hS%qfIIrE*NImrTd!yA_V&xW?SYiY;X z%kNp81ecj)Z>}#~z-mTN#d)gMoR~ef6Y;;81C989(3F(BA%`NbQq{*q$9}egjV8Wp z474cDrR>k1poptd_xW`Y@D_z?xLMmYe(Zgok4uDK{TcMDN8*k?dy8Gr^M>y7*ysJD z7qu}>(Q%kE#x*oO`m?w6d5M2Vy;8mFXZx5e@Tm%~`FEW`SD~(O3L#PZSByWg!*iq0$X7A%+dT*NFAC8y2M8QS3P zf-)Or)EHnv1NVR2ZDJArI^lq-b)Op!d`{Fb5C@`$fzSLqpgKT=rPHwc`f}k0_c@}Yph{Nht8pF*zA&TRze%mfuv9`pXQf)Y-SC!LuJ(-Yio|y* zk#YO;;L;X3HAhf_Av$#8vV)Hd_pBu$GIGlvHCfnRGmFamy4Vb~tRhsJ{og$x_S0Gt zU&c*d`a$eC{X9BSdG6TpbB1fY#Ee}wr1?v=Q&kdZ%asHQA~h;tS;gg!c<0Nm%P6c^Fum+^2Lc6ZCZ`c zYs=Xq4K53wZ6XFivrQ;;@i`Ax7L;A#B?UXa-|SW)UezinW?jI8Tio}*#>VH$$Wgg2 z8X%}-gh(94RKqg&1A@6<=jX2UN^AgCzLKMUarh7EGg}`_xzEX_Ds@tlq{7=R6m7|* zbWck@Ng*(qx5a%V-OQ$|_Yw*}r^zneT2*xSx;OyO%=(fGf%q-Y+iWkj zSc;V0KO-k+@@Xx&gc3m4gO0H8^^y4Y@Y51hYRk$=#wK)VPrkeGi#jo_lgs`YtC)-% zA^xiS5X_Hvh7*estzUAbD@4kQmb^?u*pruouf+t>v5hBK;fKMf79d%;AE9D}-)>pd5gQ|TiC{4BRtEND|?B1_YQ<}9^FNVuL1}tpQDS*TmYPjPj zaRl z@=QqdQgV*AsheKj2 zc@%q^`6r*WqA(<~N_hpRd)bWxTSB7bq{jrNcFVQj8;95Q#^H-T)K1MPwNN_M9muO` zXezFy{2MjyCXL|7^qM&9eHj^;OQwjU6SDirdoT0b$+%X%`aQv$nc?r?nw|)2oBM7R8U6f4N#($9lRpkNPog15~0giIO8O z&;7Dn|M ziuxHd2A3vwO3m?c%#>B-jxU92Rk?&|YJ9e)SCmz6<5tI4`6>-N*?pU@^>*L&nAuXG z8t4k|Oo8g6As&>MV(1Y_zrg{($bQylAtSD=!Jhzq;5WcFq16p%_I9zY`)vA?cl;-} zJ)(VTwVH;$dO`p6C+qk`d&6rkqv)jzr|=?N%3(*JF>SDKuyx3UtJrAzaJL!TL8HGf zQqdeKYYxAxI<}Fkw<0yHjekfTIeADVK;pnS(HjUHTd(+l*A2;}v>kiAABY#H0Z?941hvQb= zc!1&ppMQJzXSuOSTNa{7I|@)H7gHgq{|k=wbGP0CO+L_llgX^vals4EzkB__7Fl`S ze2_mIjZ$>b3%dUWcl)`ceZMDV_ltwP)yeMFt6!75Bn2Q`*ttmU5V{Fb)|FukSm1sX zAFvRLebEY2?)|)m17lp^94H(dA%aJp1peH)L!}4bWV?X*7Zo9tJlh{ov;Q2f&+m)u zqK)>cIQfR{kz4R6q%#l`4LPplK^i%3-sF*^7e@GnNsRUAA`G!0nx}r8Ho~^L&;L+_ z%k~L@AhTu~9fc;dX5LZN(oF)p&{SK$&nT^*U+Ad=kcsmCJKjW~;j!Dbi@j>Pt4PS>3!g=lRvw zPi^W$N(2F0jn-t-8>i_tJU>01Ynq}HH4N?!F8Z2JHe!!xgr;m-sDT ze54W)1F6%%su=g;JF6-=#^J{HjFX4cEb zvv?ps*1CIM8JUx;3c{+F^Enk(3O0RBxz6LdZWp8n z`?mYrSN7d5(1UvA!3s;WipOMU!KrXe;+ovbHx?e|@4zF~Mw(%pYcN2^Un;8J(6c7K zqcXYZ%}g-Hv;|s*X%uOfRkq#}kcjj?!&pJ!ot{B^UnxnCBYl4#b6Uik3Eg z$~=F1)BilrS@+mHrw8-wv*+zM%j6x3P2k{u`XR?;c-KRS7>Sa*^$+5h$}60T9W6O3 z%|S*z?2qrhI0$lceAV*xkyn}|LlbL`OgE&C>g^TOIIMu0QaSqg+?onFNtlTERosd+ z1QDZVRm)JG6i-d$H%3;qOsH+-(?q^HiLC12G+fX`jM}_@FrlNlLWwaN-p-A@>>>kK z=~2^~-81?Bg#{md@i4pZ3tJz$#lo?o<+&6GR%PI&%@mqHe7)6`CN!YtWmh+_xrQi* zRW7e~V3YqVKmAu>`mf^jU#0r%@Rpj&^*7em#OHH=*M)>_UO1wzVq~P^t(xOU>Z)JV zu~n@@Ybth=9Z<9C-66FV?JVWnT2>@6C}=@^vjXDO?kyY(&h&;*MeC-|uzW z?{y9D`~6zY@r27 zEI5o2fFM0jzOe~5i{p%pN45B4zD^c?L z=0h2()xC+9F0qBZzwH62+mj=XsXll2nEn{1*^5@7956DSiw4qKZ)VLwgNv*IbLM}Y zi$ASFZKlEJtN|<1|1u4N*rC)22W1)z%Nil4K0QL82HRPc*1~P3y~SC<^_IU`Ojf)g zQkJ&Cm$R$D+3fAy-uFZSzk5o~s2YXAH#+}R{fy38c?rw%rtALrWF)s<3hdU}WpEnq zU1LY+s#vc9-$T;$dHnpZ*d%#5f(X7P;8RNLcRz?}s<)4|8DNfYm}rJ=O%Y8#QBoOn z^3=VypW^@2#ZBL_wB+dY8k#h_czaLDL#H9*nL~kyxp^7S@z%w9x$v-xr{JehNV z);RT43557@@kQZn;2xKSU~rM5!V@Kb{T`Iy6CP-W);}|RJM5huGNfXHSAqk6qn;ze z^pxc@hqhvCfC2-eicLKwn=~sQ?G7Fh8_$mS4m--op6Rxvb@h~#+Y~KM-dc9qvFRPK zl-<_unwiAZWv-CDg@_x`fSF`Q={I0KIg z0B;v~)y2DOHA0Jr#DJKPyl)cah7e)}Ve`M2t~hRDR4vYpnwtwLkeCZ_DE4Xtx)^{Jk^ zgXumw(2TmRZnY8NR(Gg&2%=Gk_oiVxysg!3Tby;)D(2`t*P#GD5P8JuX&;h#>-;Td z0Uro>$LpNqUm!C2ICz3SFo0Frj;8Vq;Y-{&V=#AM+cne!Adyl(e(Ibj_fi$Y_;?GC)58Sn8K5aN@H^goDCH5+~-$G}-D@{}$}LD59HN45lyfBw*5S z+C1IwkUK#6AX6&WDCkD5ZV#X8xTJ$1UYKCu6$CBsLRUh1N!uL;cTN5&z{TuyULFpr zJatQCzW5q5{*bAB%$9GbGnJ9E+gz7|FI2{h4PapszujlkpMP%0(%zrHV4ru|S@nUQ zf8>e($@=W{{=~l7C`Sp-I`)m(wz>BO0S;48AN}xj+KcpfygNvmGJEjlGqX9D-U8X% zGj3+Z6b((&c(&Z)BU3)>?O)f5HbU6lM}UX95oe-Zc~G>H861y`=H)vT5Zt8AL!ul! zfMxQD6phnur)*$~fojl^ zpNt#IOnSpCmnSwKZg%lkW6rSA+T1}JZ7&_lS`(!VvHbkEb&?DG_h3+~`!lp!K|&_j z6p%`o9An=bA^#n!=F%oROs(7qzYg)F+$2UL&uL9*A2?NtjRIKx{aXUVc82^@gZ^U3 zZZ`p=%*ta7g<8M^S8^6OYZHi)9or-lQ)XyT3>(ygM9FWhpEkEMc;d}xk!~4^@?v8n ziAxDzk)+-jeE3qY4-e(T|HM=J`026$R&b{Q>@@3E08=dUqdIlHVOA^lW-!xzS$$yk z?*L88gXrw2j}6G?yD8st*3iqp1(=RafvMAdSZDODXvuAQRz|!xes!SL>J(E*!vJ;P zx!U7&qF~uKJrZ`ANM_tSI8kTVo*Fwo-B`PHk0XF(bP)JU>_ZJxPI6U|%B$7U4d1)@ z;9c@L$*7wdFn#J+RT>krWtOa^Joima$&w99H7Ap+0A-h(&pt_7)Ts%s9=O6DDX4Y0 zKTDt70e}6shD7A1NF7reKrim>-m~yRf^acAezI@m+?In=Ducz1`P^KQ1NY`vQgC}( z1HQ#-?OySNP0-&b`#^3Xr=G8U7M8}2q&WzTA;m$e3E~MS77^F2V3DO9LR7ns2HV@$ zTq7hj$f=62O`Caco1Y~#ul<@PvtM+!WToX1=WjQuH*?pGLrl(fuU`SGV&bn#4l@DA zy}$#{KQ=QWml-8WhBMbd-zayV2)AdgOXr_HXp~5pa7xFQ?U<+8%A5)x{&+cjrEmBn z-QG`vmJsp&M(B?pyf!r(KZ6~Nl|j+duhPL*vPB~;J$-SPs&QXhnL;AVu$Y%Xl+z&- z<|J*q45yYXPUDmt2T}l}Qty5%ja1Gs=a4U-Bz$6;`S#7!;;Ql2cSQ&940jbp`^DFG zMA+y+G;DRZTlaQC6fTR&KK-gjaJ3;YzNCCm>w86a(-79R}e`^vlrX8EicdCi!>%*Bk zqj{mugtwVKgZTfS$KH>zvq5t#P)ierDiMZ&nf2M%($v0EM0hy|4QiSwS%qRi-F8`6 zQxR(6Z3ZHj4WiG(^0_@Oz2IgTH@A(^!P8q0%^@N+KI~)N+x17ID~W;+mkT?#gAw3O zFUHkz2BgNz&_r0lq|Rs*9=E$n_+H99m+Lw_N^#Z)U-@^&P896Ej_*>IIIpy5FzDJg z_Yannnwz%*-ogX}TcSFLN6V=``18|b3v6|#{U9?~Kev#<1e`?4hKf>qzX{<_->Fkr z>LXf?s?`>Z_G-#En6!KKLwh+&kL+c{zg()9PwV5Ol-*R~H(jTHTP$S3C76=<7pPVb|7V;_*%g=gfGXD2Z+zlfErr zUpu@FDLMs07y42__zjpouEy*F0i|qrKbvI|Yv0HH00VZuYfZbz%qXddiDRQ1RP6s-ijccgubDbO~^V+>f`72au%XM4=RFB zDMD=W3d#kZCcFj7k`BYy#s2F-pZ4kRGoN_U|>b;Bmq>`1SVUx>?xD zyWL+TyC{IwIB^@-9=b75A-jp0gBshPsO{J#OFx)*6`r(YS;eNB1P21wN#z#)LaM7T z`fhW@3z5pzMc-dV$r4IUk$M=3s=*6-6fByc!i7$NONFVE-jg!jC)Lip;;!)@* z>7SMU+E+>#rq6rU32tNRBpPq#J~O5-rTq7waH*#3)J)92783z_Cr(p>hWZR4zVff; zb}MF-K-DPxMv4z)j8Z3lrkD0W*{D8cxWI}LqF`X!Ov3_?$LxMkFJ!v%Uy6dwroc|% zw{OP=^Vr3Vh{vNxvbptfbOErC!k>7f-(#=ViGcE%KesNxvBD zUkncVx{w!)CextX@v#SHDZi@R=92-qr6BnYIHQ}lAhqtwnp(_>@}UYoY8_)^L|&EV zBXlM&q24*?@j6c7bi9L!l79rF{bPZSnx_@nvQ)Q=5tNu6XZ96-2OR#)b9_X4AUi-` zGl6~SAf&zfY!ga_}$*q0qDEhRRv^$lIQF~BCBhJ&S)*zC|j6tz=wqlJ$a zSuNp_mTZxgx1a021s*YJ;7$kB`EKr`UZOM6!7w`D*b$BxZ;e6`l5VmJcvH#!-iM;);G(A(T}^_)q@DW%`p?7;%mTZ#>RhiDS^y)-R@@`^~8Cg z1JXdJ+ieTLqz?7L^17H&;P_&&Llh6BiEdfgiHD>n)Lvt!w$05D*`aymmboR7GB6wy zdI$$a{y6uiOOWmHrkA`l5=r*RF9i4^Gu>>6SD=|@d|xSAlTNYx^?n9;rip1e21j_n2=o5aWW%2_S%0&3Rh?{{Y|w6lz}p{*4{M zz2>}r*{98U9>}{Fj2|xjpXQvFq0;dFcHv%g_c!_ID877Cnue17w#|(J{$4iGiGrw| ze4udy)iZp9Z)@X}PU~4b3}h|!Z`_TL%#I%!vMB-!Y(*>?bXugct?1TOJg(UE1gO8b zW*3!nxZ+qTUv-JOh#Tv;wT>%EKNQC(=kE`pAd!%(jjwSx+A-cz)6kQ<=onCzJ4!`f zZrcv42)(7mlOYIbH9DKE?s|Lrrp1E2lKJ=|JT`!xE_!V@A^K5rert^|d+%Jt?RVL_$*?m-Zs@+5=otzc<7@0+? z`Ack@yBA_=981zE*^`II-;%riCHFA!VohMk+^OMZ)rZIs%-ODdbJ1IoTmr(ilcnx# za5TM>HYlWM;b^~;B28F*k=s=Jl5$y>U8+>mpDa+Ssm8d?+tH+lhZ`m!AirFbsG+`e zq~VLjIh0K-McWLo%N6ykZKRgrI^1~HC)o?BMD&SR#;@YkWBY2rX>PDlj8#D4N(<63 z@!oDaRf3TCIBa-tK0XjO+|Tpyyoz+uO(gRI_b0`Ec~ai$9zF}X;LBr6J%z6pGir6q z(M`Y}1I{>iBGXC(Cq<_(J6Iyt17qiDhkUxZ$ykpB>73uhG}=qXs+PaH-R+)^2r8As z5|FJ>n4486YL}JM>PM4JBw1;is2g;ygebWrAqTQMx4388{iUgyTOJYgb<1NclO3Pd zf=xD(tXJ;q&zO+semX5fs@xZu8TT4Qr*Pf_8L-uLL2w!L1cM}##&MCj;NNaCQ1cdU z&Y|Me0NSgUYZXF#^IryL?1A)(oAX5e;UiOkRZRV#bihBOd8}|u)w19^s@)`Y>=LX{4<@Y+F8vF+mD|&x@bjsY~{wAOKK8Tn<633$tkOP z@LV+e0~4XcaWgqU&yYMCnuxB@iDv$e+gxsR4F3&9 z4+!g$fD4eutL__`(@_tg`FqK|RB4&ZAFcQB$2I(Mfd2Rjf82LBe_X;J*L{yaX3)tE z(J9vLN%mjp9i5M)TZ)lZeuR^JZG3HV;?kb@n?-l6PL8GJlm}=zl0P22i$99_W6Aye z(T_h`=`_9t0{UBKuyiXGQ}0@ZwRdu>;_G#E;ULJvQ9Du@Sv4C5sr+#2!6YuqtzKSH z9p4kK-*ahA+!6R$H2L)~Wg8?lS8lmsYSD_2uEb_Th8L~C>(kC09`Q%!GbCXrPpqGC zOl%~d?8&pkvQ#k%Y z$8eC}XrLNR&())zPty1tk(suq1%7_Rsgsu%R*xSLJ9hH&>ABVd8*U+Z#|Btsffsd*>8~>9`0s$j8C@3gG)M&v$jY56FLCJ*~oPmjA-EgUf zMk&!&Q6?;kkaUv5pYxpOJm=ZYyNR0kJIPJPLb;dAz%Y@~3cXJ8A#6=OW4-xA zTGp!U;bIfsF!Sgkba6EBKufNC1h#l#49tP*L)nMO{g#|6DY8LhAZNbLjw5FpcC2{% z()Z~?pDE@%;bkRA%z$s`2c7U4u_CS`u?(Q%Y$01z`|K&(%vIKOj+B0dJ>*fTH(PB7 z{`s%2Cbnh$Ow*P5Out^w|RoN}71pyKuG5VbwOfS6!8Fs<>B- z&e1h1Uj~8Qv<2KX0f74xB)`^K0Nm~EE22y;JLQVgE8)ldoccLf%7!9>$D;7vjv_}> zk>l`8r+e$znW4 zTGg{sM9q}>E^;Y&&%)|0Uf1Y=qk2|CTh|2N&J67~XE3#5Q!TgEa+`Khc!o+o-%75O z24laXVzvKU^4Jr&Ae#gVVU*g0C|Pf3zNFAv5t0wuwY z69{n$0X4efqa>%Q9(D6o>E=Lzo{Wo2edsJUzpl<$0nbQ;#}OUb>I@V(q6Z^gk_gF+ z%DNOo>W3I%>|$~&gGIaNrbANmrM|?bULStIcw)!N2iMKnAY&ZaNMc5wZ5CQ6Yhbo) z7#0oTqy;-_Ey4V|S%L|e7O30hvd20l;ZsTIm)@mf_8|RHhL*BCx$0fSF_CzY*Y(cg z8DdE6JQBFnqrH*`*mXHfVo!g&cxrOo6mzn`>E1-tr_N~{Q8t;U-KLZX(+zlHv#qf_?t-{hI55$`?6u^_HPpL_Us}jj3XzLNc=Ky365d1 zqJ=aS8UD>Jomt%1)8HZHkiKB)g>7b zo0B@@E&vrp9rUWtm?@AOiRRyYK@#{+`7Lr3Mh*w9RCb*vEGLX{dl#25A|*#OR3oB5 z(=$_&>k9kG#`^3r6F>#Fn2!K=;iRScW!d3d(#4b^Q(JdERy?`8; z#wuIcgQf>CDM2aNDOWTgYcVe%EorqYq+*}>A{G%UP#MQ65Z9JH5)MaXj}5kv6xn0M z=KwNG6X-k^;puldGKqT2wUncO><0Sb2Z;-+-oPL+SF5aGh};qlY}xZ8g0 zU@c<%*gq&5zi^C7SR%l z1}{lx%foEU!HccQLC!<_sHSdZ7|Nxj&>W^Htw>qQ&XR2!X#$aaybA{u!Vs2i_Zkj# z=1JpsM{eAU)-)fQjp1`(B43M~QJ?cDdnyH0xOLW^BbN`XWaQqWaF+yg4}<1p5C>qp z&1QjsL6}|OiCp5n97`@Cn1EaY3DZI(O!xJaFsXQN)&cHMigDy{_d9v$bDmVepP(z| zzDuNuM)Nt3{6#)A$?IB@=MT*;SX_u)9SOMz^mo@!pOR+gwyO!@7BudP;A|r>xGyiR z%rQe40st$5!cxFIfsXfB96ipQ(hn8m&*l@7axNyo7IanHTIe|nbtOJqtGS3YS<15! ze`UxuCI-qn(`G2G(neiNY>tf2J|=I4cAL*$%E`Y_Ev2pI+Uuk|*Yt|2 z$FW7XJRMx`zyTL{Lo+!rUXkwAW;8bxP7=)U27i#7=5uTX)#!j9HrW@>ywn?-1}5DO zq=r8VDw_|?kVQiG&BOWy zikw?LkSIH=G6#DT({tlDmrpGyI}TiDDHb{F<1@5%n)wQHa9MQ^(TMiS$wKCfIfg4T zUu1B&K~}oOEM`3jy%%4XX7f(kkAnbL=NH?yxsOSEPAKM9uY*&Fn72W4qJKY&TFvGX z*)H2bI zE4xPAiRFS-<2B2$HDAHv*8Du%x(j3iCa)l4ifh;uZ;@p~!Zivp#E!Kc3)a9X7_$b3 zm&Y8uES@eg$i_0j80KQ#Mqphof#M-rqHW2dgYm~Q4+5r}H`#)x|71nO@4v(!nG0gU z&$k55hi(=+pw4;y?lWWMgur!0h-OebKiQhxXP(Fs1{Gqb=n6Z&`5{&zk}@eNfD#S) z4iYUrf6}s6R&J)EFX;D^H)=y_C*o3LGft=BQ`Fd#g|ou~{Kl zaA+&*WoJ44zaJF(7p{6j{)DQ^)!Wb19~6Jy(61kpl!mHR{1Ndg{ydOVge!;<%R6qC z1wKhO0K#@Q37X9Js#WXGpEEO@sqnfO+P^@paNJ>L7gc?tJ+OzmKy@~OKynk9ZE9c0 zOe!AlA{EFjaJ~${8&M8Dr55a6fXB`wRt;*{t8zI1SE*tw_GS46HwOk4xsGb9zo!-v zReP%53*?D4gH@AkB13MYBJ0)s0nhRC1kFWfYKQ9S|E5))YgTRLI&qF5m~bsBIDnlP z7POFE>GA>At|WN#wY!o(oOSIyM0_GLl(jJVMsQJIe;u#M;6j_zql7Oa%qsWY?2X26 zig+}C#GO&&Eva>{$`ocPC8Jm{A~YLEWbRWTC=0P$#w{>GOa3m|qg87_kmTW)o_$8z zy#usLQ31&NdEc?#Ka+Pt-;lQJ-XUe8E8Te;VYlCwuAy$2Ly(qQb5bS|;F^f7)Vhd3 zTGwUmIp>VDddImc=$ByaoL36SZ$uIi0$XhF9s^f56|R~%qCRuvlJLFB5rr@R4g>1Y z{9BPYW;D7%lQ~q~wJPV7MMdVIrs2ROtvYR0=9mP&Ca7|wo30&l!{KelO+I&lz{1UEG0O~e5W2cJ7LypxFqH5lgBc+I?Mt}Gle=yud+rk~+W zzauvmWv;Y!10khT&IpuFxhZhll)-_yusx^$L^ivCUt4!Yx>?5yLIQO9#}B1fh(5x@ zGo^dne`~3W4xa|>AbfeU3npr&l}|~-?>K3uV*Y`q&?_sq6HWxGo4*T>0zE%_WrQCDhJ7qZ&>t9nYWs@2Ga_^Hcwp31N+ zV;0B^$i`Zz)LF@W)0P(%$U@0FQw%g-zxTMZK`dJh$$b0_N&kd&J268Nk0)`*eR4KC z@&kZ`9s1camCfe%QN+@miH%E~bc|)taVXy*Z%Mmy>`|;svl+b+E&zUdv^lVTxW&&9 z_Zs%C+5D6BDd4D2I}dUS0)aUxqxwF3y=BR2e6ADfQMO+0BE3k7T`Her+7W|ll~1aN zjKH~aU_=3hROuCx)UIYeJy~{2_BUnlv(;P*(T<6@N0DSXKh0ih?ql;*g@x~Yh8ciq zH+D-n(ZEUO+DR(>7j3I4eu{+=Ki_M?KnjNJHeRjJvDx zB6Tu9wqBKO1BYW)U;l9$MUt)rhAeW%LR_qaW@{Rz&W=6RjwuC!G14upc0j(y>a;26 zl?_384grdo%So(eg*BSR_p7EkCHB{2*&2su2^d)Mw_PjzNI$v_>r5^@et38qnGuzm z^Q9l*C4_BDoV0KP7*y}z97b66S?T7>n+3OpuqgSOkQqlqy?abLsnQEYZm6rS*lPG= z0T}=JxQd6EJk~dGb`>l+Cy8e&-Iqqoq0n4e|+a*tL~4WuJ3mOn0y1 zyZE{Oi?jPAIl)zY`~+-?Y*UReR+oR6WUR{B4Uy^RDOSpFlv*(&M3C3vHoovX$NGYw z5FYwyrn%^PszFKa%P_dBjR_oiv#Z*#iNS@me=Bc+_GHo@#P!m7_m0D9C>}N zHZ3T!Na56HmtT4oM^gfmd#%9as%k`c=9g^FDu>9C3af_*+aU$mm|}9L-^e}V&+Iz z8qFGT3$q>mnbr0-cDPn^AS)X@_{*20_!5>cW;;oI+a-HrtDRk>5;-HlP9W+EE&5HJx0nR z+in@l;#KE9#a~7jNt}jKh!GMs0Zfa z$7)gr;6N!8(vh4Q5jo2go-IGagB=d7N<{2j2zbZ$;j=Eao^Oy94w6X zNx%L9a})TUEqv1_jT(sX4e8uu&Kz3R5=y0}*|;V(cJn(&I6EoVQG0g(aw3$0EoPXA zVPcaU~%B))$`9jeJ zb$6|NI1?^$y#e8f$rRA97hLMONTb(f_5mv%^|8M>QIlMCNwQO zG%cr}SQOl4*@SvZ!p<27xjlqa*Y)Z6a=1ephkVYTKhV~Q+C{4@5OfQ+dskemRo0QB z8;!wOUf@z^vuLVL4UFO8RQ?TBdZKH{?KYYfp>%UGQ~adR&Drsx`uc2&vZtA6Gl0$%_+fHwpO`I-bDG7Mz*k?6_Zn`u_@NfA9{5AiaP^8 zRHaJ-K00uzlvLF7G#Am}R4({q>z)`|ewKwB8W8+#iD%88DuMCqeWck!h!L9EdJ zBS!FHSs?z=p@FX2z~b<<0r4MDCO(rke-yx)zWvU?WPTS0#_+o&ki+l2Ww+?z!f<@D zzCi{W8l$707;lZ*l>19U1J&)h@ewb9;Ass5C6_WXnNZU(P+GP*hLo((YYbs-_goKh zxfG_U_f~m#%6m_lk9}5vEpJ7QAkr+hbwQgB(?Q#A<2a+$O&o(c!S+FA-yvRp`Ne60 z`9gW-C|8AT=9?@5Y$O6#x#5^OMmGg~I@`+$`&@?Hi5JBQDQUZH8hsZwe(y`P|Vr0WZ|g9(o~{L5__C+ z=ci;eN|u%9E7_|nuN8|c6(+%)g>e*(yTex{z<6PB5;P9HP_zdBag|*b+QREe&|gnRJX;| ziNap-Tk1#$d!VHE2nr;-Fxj^i>(Y#AdM^Df{eS@J%Bu zzNrSpNb*f5y`AKno&bYjlUcVOI6}n6=C!POWs(@a<_Y=20lSzBFqGVdOJLj*<-{${ zv{sNJf)|CZDffo?7b<(qAM!ltZSbtJc&DK#HsF>}Y`7<-NkP9>*-nE>-G!B?ShUVo z!cak8O;f>_-8lG}1athCA=|V*h#v3UjeJHTRs2<+X+PmV;p%4l4@;;SzQt63Q>gdy1e|p)2 zT=f$>8=zU$ucCTA*p+?%Nz=l^4gssQy4qM9a}&{mR|s2qE23PMQ+&FWe-8P1RYlI4 z7S1^Y1y9sXJJ^OTagEZF)oN?TQV>a+79PWcn2ANqsUi*(v5Z$B?O_5&gVwQMGfj&0 zShfFB8A0A8V!^kym0!q5+5L;kY0|usL6W|3iozr37e2?^3WbIxQ3!RJ=~md^8-qk+ z2L=^!Kgd=eX3iY5=ETmV@?ad9*z-1mOcN~8b7t9on$?9`PQz;%v=}!irZW#WYO->JgFWc?f9KM}1@#`M#at3!J763~|vjsahIiom0Yo1NM z$boF{WB73t_>XIGzP0oKMee^4rhj%Cw|0edwx}h0;9%Qpe!SJ4@O(GnDa0!6wT<1f zY550MnVh1k9ZLuPU1Z1cya_wvqi9XHo6~8}YRk2`Y_Qw$mdCYs**o!Pxtkq^Pev0ggPq2!}R-=jxG}1$!*{Z-*eG7EvdS*vEZ>SN3X9tsDaVN&HcJj0WlCvk& zKv=3EO3j#b3f(u)hNDz+=%kwj>Zq8QGDvo1xY%r-{T=oLgS6mh0|H*%*%25aKZE5b zOLujYEkfDt4&CpK|5!@-*jO!T6)v}jeU4U|li3YEK^5j+P8Q64{L*Bfy6IiB`52^3 zCeUd2Ikz&6Y<7!R_`<_3Lbl*@D36$5NO?z_OdhLypU-hvXyC5oFwog~ac3Zaqh&cH zfeYl?Ihy7ywjiaawHE!VD|%>qZYi|Z{U%8iTrrF6l!{~uBQYmQBL7*kOz{oet2~N} zox6}@3xIQB= z0)waU@MYa!VMnC&c)n)ZU+?MuI>Gunq)m)(*<`1lhMa|`KBsi=Xx93k?ez78-k|ahHiS;u5YFJx%3mpY7n})e z)Y=vh?wDq}8cnO$73KDIHKZ+z?-bhva;r7$I&}Y8j829xqpM8j|m4b79wR_Gnjhx&cNz zbj@u+JH2 zVHt~iBr6wWvAgrItlh*G@g`hKzzi>Soo!{lR5E{@Z%+(|vu1Oi$_xvI_vu^K-G3_m z(h)LY5@$m6wYIyI*Se`!Up136t)j%D(1kFh$gs@O^jY>C5%2I~3ngchlr+UK8zeDB zN0K(FrQ!x@-xMVyXe-2Sjha?y*28s&Prst*Zc7B)^qT_+1orrjP?OKp~766oAyySQE$o)7KW3MIO0xLV1l$Bz>_`Tf&n zw%7z=j^0^@Pi=!alO!V=e}+x)hh7;QHiMJZnz3!5jjR>T-L?t%$E=@lOLYtP(}j|EU62Td~?C~m$KQ~s`=yJ9V#4@Z6n=-7uds&z+|a;F)xF%utnRG zWUoFMT{BuB_sSZ#^;iLSS_ z%HJ_ydnf!Ib;@*a1FUB87d+xUL-!1u}804=v3&^izFoXjR z&+amp(F7&7^O+(!WP$HEpTzj%6gR(1S(;INm^nfgzZ^UT2^6*}%b4!%6?7XhL(mO> zz5h_?hIJ1PVl{4O%Y+?zRjwz{%qB00X3; z67=(+vP9X6fz5n3RBnOC_`tk%wAw?#ZnyD?c`a}Hdb(&)^R1@X5A%&J?|8M-?lP|< zB|g{+zj-5bY`mpA-zJ8*RymU%1drT$51u}Wz^M~e%OeD)|504gHw|c_GBBeA>Pqm*#=jDQvf12-~ASJLG-D>`k5?nj1 zW^SwbB^-d&S>^!$0P`6Vl6_rEso)Vbmwx~Y?6!YMaS|y=p4H71xC97q070)V{BuUxsHg-DKZ0XdOiP4w>BLynKm7H zFhFiKi-51|h!NGMAJLul5p$rcVNtgEBs-hiXm@j@`^nYh5bP-KwX0ip#3>qKQv*3B z4KP3XqMOE>lh}=gC}Qif+{a3@Xy5&_tmD_6Oqv9yu_=TcSu)MPO`^Pgk~b@d%K4>9 z0m))}e#uA`xuSO+JNU_2rI_l0L>G=i%!30E@$<7 zU?;J9XAVUIl*#rZv}3kRZdHv9q$rUb67d1TYdDUIlt5@}m>{FCF{hTWs7KDjlC$3H zfHulr4#5^DjXt3S^ou!O5KAD-GvP2QF5{3-3{4*f!uT?NT2a2> z`(|+;Sk8sgmBun9hKRoeDo)jH*#bj1KjpM9Qr4N02>%EoHk*4T(b_MlBME=o4?zH* zTutUc?8lNT0SU9>Nere!x>@-3fQMs9HFlHAE>gOG7x08qO2K`A<=KP$EL~gu-!cw> zy+)+>0#1qEal2Q}X!xWxSSwr$KgCxe@sW4-?1%z zo@@eQz~D2Q%s)ZTBq%Ynb&<>u9Bd&VPC+*j^}Dv-vqgyQO_tsd-0Ky!kL_w`p~d+< zRA2%A;M5+oQGA}2_@*Q#XJeKmQgSN2G;fe%*4kEb5JL<*&3)e$klUnd@ko^Wc_Dx7w$kU0w+ePpK+;L zA`?)TC3Aa zln!(D1YyWTe5~XIzhl~!)ua+2W6i4UP{j7WNb}X3e^;Mn-fax6*H->TFbmzIW2?`# zRa-6Fq=*Z7Uh}AYg0!7lojFd3saE+*QsO7tuVo&|Sk<)Rv$%_FOV5*lTNhYq%Lmz+ z0-vG3TJnB;BsJbY3{RS5`j({O0 zuISg9|B+KtsI|>(MM5K}^~fa_5A~J8ioU#Jo`q=y=`S2%ulx@4c(yUwo&;2_Nu3Ed9kzF z=KwV_FDF8Uif`lRrumsEAE@oNxRm-o6SKNz#M?ISx+h4J^p9%NAolaF}6;> z$gGk@=-O#o)Yt35X(+CEe+d(NGi8~mM=V;K4*loUR}0B-6W+n`S@C%HivV?#JQ`!04-8Mm@=Hn^_L^yjB|u@b`P7tQY2tCr zS#T$|^}pW1`L|zKn`d9ZDftaRmm~0W^TtBSQUdDanMgrXVj{zP4gbqOuSkm>5BS-? zdv={S3nUdbNM60oYvi0Yhf)2#_;eW+#4s}hSdpHo()IP$hujG@zEF=-Z19$wgh9nt&0}mw zM`=c>1;&&So$8_BNxHVSdA-!EJ8NByD+XAI1uF`0xFxCQzUP6BB``{-S)uCKK^4cu;)~@2+r@s?eSvkWfNaD9EY(LeT*ou`+eOZbCKam(-b01;k=9kMca-r#=Rss_$rbeM7DKw6&^l zKe8(<6#D8F`YQVf*Um5xV1ZGqw{36R?p8DJHd>YrPz#n>XDXKt$1ZGXt}L)}-5GIn z!}`?Y(9txv2- zOZ$c1*2x)*PLkz^{OS+ zMrAD}1sdj`T9PIEZ=)VtWfh><%>L0g=PbB`oT61Qe{wjP^Baaau8r)Xc{88{i*Q^$`crsSPZ?Up$CI*U8nYhyTj~^%r&40Rl7rY;A|hxZ z?9|#;xZVX~_UOjzxTKvFE}=Z?H~9ZUzwxO=oAkVtCMD$z;CIC_KJsbP(D!UI4?T(_ zrGZWJKgF^6L+efXmWh4(Zh3bc@jKr2JL6?9iC49=OU0@Do!3~MuX@7)qUKeE$rW|d z-IOZm=I`IQ3Cgv+^lOEskUeOpwwB$@5)Pj%xoMMAFDi zj}I`iKK%WavXD-uo(y9&HBgUQYTL{l8JHk~Sa$-)CCy4GUo1ep<>njV>w1kR^w+N+ zPj3I?nb(;b&+Rgv+^-wYK_$ZcHsd+j8qbLC@q}|uwFl%EodRAS2fM(j3N65?G9*LzU8Wf)=#l*yX1#P>aWlPe8) zjTX*l!&}4`#gEzMk%^)pVF70;$85P$T?+KKpJTzTbdevKe}>JlaH0Qoe>>K6HtG3} z81HeTA$x;t23||#eim~A6%(!CAM1r%Rg(9@W0?SJ-Cv8(Rvsh+%>C{2sTD6<3dp;F zKWhJs;4J3{al^w;*i0sdht@A<-u9&kRJK@njGRU36n87#v_(Dxql`!LTj`O-LOUPH zZ&xU@)m-OK(&h33Zkb+SH?uN1po@eY~@&M;{}|iu>u~NeXF% z#D9GsPdK)ZvyScKH_zwW){^~NI{wS^{>6L>zi7|ruDWlY&+e)G=h|Liax)8a0IM9m zR_BY01qkPdmd@s}NVLGK)ht1ig*FxPuQ*hhZwe}v)cP>&aNx=<0X)el5zpnX%%qxf zbF-pf-4l6sLuw+KLj@nEvAcH{_3oV)X02HDsTG`?&yyU5uHu63Z;V;b%IA?m&w^Nh2k&&`TtM291yt(P);KF5b2=Rv3}t)x_9sX zC0sse?H4Y0^lA3dXuojr8*lnTH=?9mm}~7{6(1J}~=F7anO|7v6^ zZH}AsR-SqPp0qT`v~{e7f+%+1YYYlvU>z8&4gp3^Hv8N010RP(H=&u3y^$Sq2;8J` zvXDXZt2Ti;R1a1`ItgX@S)CNMj~1w1U2xQVfB*}YDk3o4#@l4}M)PhpJN0po%DPcH z3k@2nHnuT6HtI$*p?w{nd&xOTq9Hp=p$zdao0#Na-R$Hpu4E=DysvvEHKT%z{~yzX zKPi&cjrS)>-@XCw&+gs3e~I^>e$p@Ai|<@Vd!e)0aB>GgT-Qpwlz-5-rjfebyrH6C~GpDU_=1_HR7@b45rPSH9qaU!^>F(`)H5O%%CZG)6 zS_pW?6mWjpyJ2g0vKlB!HTCrF-f%dbnp1Fyb`H(@(WWbu%tD^)YLd^n$NS$nJuUkA z%{7ufWqWt}#2)GIAr(x?JCv-;ZRkYfSvpC{z0u+L#wM=HH6E@3rp|{&(N}eFbIq zg|)-HhSi11s*XbK;fCaCm8y_hu?VO$&@OLNWr~xk^&; ziC`|vCB+FN;T`J>l}oxWQ9MGnqjdFl3@@IHwTyn+S7OPHI{eb<%Z;a1T~A9Tu21hr z+xw8J&)DiMQD@rILlTDkgz`$5&cs{IU8|@n{kKwLJ$RXx)RYwVV&biEYyJ59DzI4awklqzxvNojv8FAE zojG}FLEuz#ts)dbX(styy>RHP<}|f)Ljhk9Dqw%BQ0AUtlc$UfjFO2DbQdkGo}{W) zMHT);KFBWA)-^cL*7guH^w4>N2_~ixU_>*kb&7gIh8p=W*P-IbrDUi{84WWoz5Etq zdPAKk|5syrqPys^W0C z*CVT}*&bQtj>&YXGGl2h_Bh`>#!dx=2PGeo`_oIe3%ukp1H|C3^xWZSxudbj(GvLx zQ^Q=wKs3MfrQ1{tQi1y^TBU4S09dPh%>uXO0l|1|kl!W^*dSL9kv7N$%=nJ#(o81f z?&7)22Kf=HN_OxwyI1{pFtbMo=^CB1XO3zaYklmw9##FQ0zon$6J*hA9 zzd5qQS(n|wxip)%shs#f@VC#(s~=4OkP2$-*M_s_T1QFLXRZI0m5JX1D^TQ=#h4bF z4?iTDBE_PrwH|-rm=-6}V$ZeyV_Dzao-i4^dhLO$?bZJG1YUpB!s9={*nk%5q!oWS zXF9K}eCsXqvfxqH{BJ=et#UTM#ul~aPf@ss9prvymg%u94Q0(Qku^VEt@+_JltjQ5 z7Mx6@_G0=xJye(}xF-)8{K&Ls^F{BHl&+<_V}IzeR3H5pB?qun7xu{i!(RER+ec$y zWIR^XBbVMQm+Fsn#p(|avj<40mcAJq(W6k#Hx(kkbj1WR$w9wqLCGGpbVb^j4atMR zd=UEwpOcI2c_{`6GLqEbMLkndgBJza2lU2QD#=x2+M?!AshMPAAPV`aNr=L`YGSgq zN{bk$+jCMO?bt-&5|uYOCo&5IR2OJ4TVU~(ynQ84GA9ylFxgun`Cs4L>|=W?nbquC zW8WmMFBtq;l<;qgI(*&O`>D+udo00;&n6LN-ME#)CfQjANbfsSt;=9$cP-r!_t=Eu zlCK{{KQLF&mMZK~5Ch8Xk~Ot@gH14Qe*W7MjEO2IHZJ__Loj}J3It<{s!{ID;v{6* z@OeYt?CW~?8qKysWrz*gL4?(111HqPzArPg0V^$71gx;pue`J$-hiW=7Xv?$L!K?_ zpmopnXtjq5t#hPxzKy?dcvCvpbr7D*t+`vZwMWH>8qHB0ht>z4p?Y5l=dPSz^Ta6w zVF^kfiH%)YWPAwYPRb+&lE-qVS4LpX>0l=f!Oun>4F&zhl22 zPj+H$s7A{|B9T;WqpA%DG(F{R0=oF@xTER#3kWyM7P{vB%~IrN#SiTvcx{ZHftBkYM>*J~o7 z>Is?2JefubaTdKd_xP%M0N$DV-S4)@uyZeoHJ_eVRKnG;!_@Q|y9rn8C#VdH@lA4( z6LbBEs6BvgSDilTx*EdTqjg)T8(nfkTOc3lT3hrl*AI}{oX^QzyouEm-*_ogeB_44 z=;zn(iheZbo#@|h*%aOU{hDa!_?l^}+~;zJUz91A3b;O9_KHko4P6wmG&T&AWJ2>K zP#Nv2&d?Lrk^9Hs8-V3tJ9Z^oxWXuXVvtGY1XfAYWEou9r9lM>2R1P zK&rPSqULhcPvB^le}_J6(^geF(z2Li$L=CWgRi1p>2AZ{k!g1jR<3#3Te@Rgup@UF zcTM|BYT3d4VIzBh5b)g-67`iMq;#4)tP^$TVR>ffc1HY;-Fis(!U1J)Vz|g3{#6>= zR#AA=eNe9BiX6MS>LGk%hR4z7b0lcM${09MS6kZF;A+)^^;BASU~*eT52ZVre8EVj z?%3^dHZ1)GM`wM#)TZJE!1e@J2Q%qU!aQTkP|jyuo4x!BZ}_j$7jO6($*HXyKq#Wc z=WG~6tJt0K8;oXP!K-6kx=}@= zzyzbe!*3tD`Qzce*q(SppYPx2d;D$D2dXvN$3GSDDm7OG|8_2?C)z4I<2uJYPpDu@ zV&PKE>mQjU=C9hi$0u39{yg$&Cie7N;3n)}PLyF@RaZN=t*K&vf;n6-BgPV{?!dim zEjr#_bqAKVMY-PVxVi)5+M>o5XQQJf{F8EWS-1C{G%s=>bDm?D^=Ici-LZoi%XK@p z_#JQgh?S2Wz5?m$TkSJ55(e%Tlyf%g0>c%FPGrkByU)&hgD;Ku(nw(7gu}{G!)v&_ z#>yI!ysniZpjbGhnhQ{n52(cW$lwYjJVTMqnFgX(J8%4r3!Aic2P?W@8q>-!DEiiw z%;;N5M2$D_GMkapFo@-twtfVaIwJz1`a!`wQo?$6C@7zT?ITtUkBLd~s^D1O8-g+# z;LF18ZF$AKA~&@B%Yz%FEbtNg>ie_I4`3DC#=}yxSdK-^lgp<}N-VsHSgkTJ52TyMpvtNwhq!$cj(a=TX*IvYm)kb+z}kQEk?XEo0Ko%z4mw%cq>uM*r)mk0$IK>XbZS^bFtv~b_zp`c7J6S=2;eUw0hT#iL+^*f~Lf@Hm zQo!L4pLW|{55q@2^3uN3#=+r5^hj)s+qqj$G`T~n2%cX%>E8U$Ypmw=Gq>wT8~0?MRKVow{g z?z;-|Y%D4=4ypipB88!;U&5IMUsCvWKLVL%Gem-oT;A}xC;vsD*^OgU`o}SCO)JNv z{_w2YLNhBe@4ta*g9OuJkI3l`yUsNa@c?Ei3`?TdnX7*$liUZlw3WB1uJn&zc6YRO z?ZJemt-P45xaO@d7sSO}XDr%YoP=(ktRP|mWC^NSdkwf<+m=mp8^01%b33;gkNm^J zGQ8#DV-#ZPiDvhikN-okN#PjSWuckd@w$!T5_#?oZ;3m9iCnB1o>J(Ie3)gtFlPM> z5ki^g?p8LHBl?j0-)OMWzhMtj3QD@`cD(HlJ+4Z@_BZqIWOH)=W$%%)B6HHUjn*Zj zen{;C-kP{9Y*VQ*2)B1!ZBOSiM4JDB$;qs`6SRg4JcDoeg6j{)?Ie=Qo0B zeGDPfo!cWF+165%MINz+?=5LaG(eNamJb?-RrC&RV`Q4PG3R1we_AN#jM$@;4R+>Q zAkXUVfZa3!ehU%{r*PFpW`WhG>Ds#01&YFL*4ErZY1xD$&K9dZs{_-kD+^?oQ#*yC zY~0OZEW|2e=1ZjKG-I9zC{$gd*Deb%AEVJrk-lB`qg~c`4%o_$y0`B5UNS6FVh3gWC(;A0@X<@d(v=*8lXNc;MV6Vu|QB6d4EQE>zqS7QSn4XBQWogWB6j zZWH_J$_o|J$yF?Bb5&?2o9l+;=1Rz^CII8mG7Sqv8?wr3-XpDK(u%L7#m2pe z+E?{6S3hb|K81S8T~%AT8^)ln_JZ!6HKKM_)kF&MT7z9sK8Y$?SrfR)?W(s>>mhWS zDKfWp+4K~d!Rb;mGtI z{nEO>42E8fri0VNlx)6-8p66pLOe>ShDtxe!T4HFJjpycj_## z35AW!-9&xZWhf(WFlvp>ko4ewMbS-Nu&)6QQqk2Ej!R%G3uTSX{*vgto%b z56FVR61XJl_>3Lx1qC%7R#q`!*%*nc;w|C^qpnIa)cSV z?9A0K_qQB3+kCHT-PjF55)uzyYa2HUp`RY|mno)V6}=LZr*i(fo)HqPtr5S^nCMpP zelVy_W?t}-gK?lpXG_uqyRQFSx~o3eW+D7QDHJ2B}ywx{XMzXO1u_9dDTp^bElCNHaqa-VSGt92?l0KgSvxyM?Uz{43}+6qxCPF$7EXb}v0Oms4ofp1N;`@7Ge> zH!(5>aDa!gSr_ZH#?FG5N}QO6Ux)2&EJB6t^3WIC6%*Ybwr?i$zlrV36}AWePA>&x zwkg)bNFvRg6w>5l?FU>Gb+d@FhkYm$Ot%q7VT;FEKiydUH^H8|0}E1!14dgENX?(r zp}$f{i}4w5S3;{gk!~l~(#xMEXWgT1{EC^+`?{HLi%>&(nL}@TCy8HcNs-7vOGHGw zKrK~^8zUx_h-VjoXA|cKZnDu#(b`!wsLG^p&GU6Ff@|Zzwaobn)kYtSYMJxn*|OF~ zxSeev*XsW|Y-64Ffbbsita+D(rp&i`%l9AgJ-L3h2g>9K*%1F)X6+(JZ)Po6H#Wtc ziRZzquPU*aYxAO9I_kKvW|M2Pwl1PwQM;)+qHImneSpdHWy;?2?8=m3Q=TAOHb7+m z$`OF&`op)1mpWHGhUe#rU6wz8#JtI#*0QVkO)D$nH@ECEe)Gz7ehbQ6{1%pdm*3fC z=W821`y%@?bgX%6sFgTk^7sUgM9il8Je`{5VPDKe(|B)PL%4~J9yX++LTzK&Y;EKH z1tk1<9}+I~z)#b+(#V?Az@O5_sa#`^+n^h%-bPQJV>6Ly$GV+n*wo&Or8w{4=+7&-N2U0hu|ZwDC4vTX{O!ZM@-j?k#OhA16)J zY{FX7Q(Ak@1+-MUtAV|QkDGt954}%mOBO;Scj>m*^F&^{(@g+QM+<`CY{z!DqfvM4 z)L#;5ncK0+DI}oApRyu#|}$9USQx>z`9wa(;{#o><&MJY80ClQtA0FyI{GQ=b{?Q?njZOTsN1!F z(Ft4#w=~OB{cfBfy8D-7!?d5N9N<}XTUP(&J-}?0C!NWq{6Q&ySjvAP&kahJ_D?ve20`zNckgDzC+4)_>EEdBDBcy1vlk+R^9LLiw@#P*n`W&YgL&b zgP2arq8HQ2Pam}`HOu9_qOO2HJ?M+r|5-MhPw@eT*j?Vdy2#ygXBYEZI;S`qJCybK zKTcO)#@0oyJnAiscCNsJGrIp!R*(<8W#&t+MSquES9Z*{GUQ5zACRW97ohPNx6qXO z7c7wH`}Uys7&pC9erK(h->aUI-y0v3-;!1G`^*wK*zxe!`S!z0bJWAVcNOQ>>G$3> zzd(Kq>C0ztMEB2)L@Vyuml@q(%Dr>d zbqd;a-u2x#UsV17ly1CEmp`Ba1}lA(sV^&;88mc+=d~`D)ApfTq&N zt(S_q`=aTkjo?V>&gi((-O=agc1AA{?3z4xQ*`g#*68)6HPIH(u%&c=^y#_H(Wgt} zQ6I?UD>ca+jc%Cx&uC=s-e{!sU^F(jF&Zo7=0oONR>|bj_oC02z8}5&&?VyqK7yYM zWL=F;uA$lTmTP@WB2LH7y2#w4o5Ah5uSHuv`$RP#68vuIUIo_HOv+|Hr_kSqMeh|* z#|#|ZqE>)~@t15{M`ytNl?r3;BA`~Ce*N6K=!QdCw~{2Q>MdC4T9grDv_}k2!?-8-a0@e8NHx$R0@ulswE{?S{-dQBzYh_ z6go{3SQfASjlXwOglY#_nFKvvux9UI*N336HRW}YL9~AFikFo?ah<-jt1}t{y%)&i zN6{F_wSbbtgHq$YD_A3S`rTb%3CnA?JRXSd2jO^J+O)vNKTo`iT4 zVXD=c3V^Xsy(K%7YOLjld!rlXH%B)VZ<6Y#H%5O~yek?j-V=?@H>1Cs4{6}SFH^qV z_*iuB{Fdn6;z)FVabvV&*C3n*qWkCXi?$TM9_?5VxtugCF8H*d?(%5M{2jcXuHKW$ zneWjkzRYWk zBos&u!%f;ZTbAu}<%It5cG;TMS6elzp36HDWxCfG({I5uq~Hx-TQJaoU3^n@B%bkH zPc5Lt-mv@R4pr>AOmyo+(BOFq&-@u-{ZXopiunwrs>UCx5Os>?+0J*-hK3&c5x>01 z$qq)r_Md>yyf$SnRPnJ)ExsNvE>0ac1QCvDA358%Y29vmgY;JO;2)?24My;4>5rlM zGdWnmi&pg|QU@f6T2&Oz#b5HPIizC#;znCrI4eByMv-wE&yIc>5vSXDVRQ|DgHi5o zsUH|Q>VQFWz?*3gTuWh(u}|(So~j;AZ^`P>FOb<=QaSoL`HKf`$s?nmmB+||!T!>w z2M5q#X^s5h;)H?TirQ5d@zJr<$J0c<$y3C83QwF;3b1mPPK{+IeZd;+1Fl9y=^!Q_ zH{qE(-xbNLRw=3rWEvWPZ~WYyqrb1%E7r2wDgcR0t8Y z5Q2|_224Y}ss_QVg%Gxk2{`NUXTd1E>HFI1Iv7tq(cp1)X{*IqYdzouc&im*5Ki>g zu;muBkMwS9nABZlroOtB2A=A|lw} zG6Wg4)t@0pi9N-STJxf3^p`wit@(X3ZRG~{c6_^4UraqzZ!8%bJaQC216FkNin*i90n)PhH@E)?D3zOL7FO4WVVKhmW$o|2; ziW(sa;D}HQ3V<4>|3d{`!GxKJ6|7ZFbNx)j(l?Kph+kkL@P9lJtYEi9s*EXAsq?r# z&{pr@Id(2>afu+rE4e_m2S$?CbCE6pmOU5gW?5&+MVgZ@(J`1(S)@Ltfl4jXFd2>2 zYLT*%RS*zdM2yoZiQumB8C-1 zcQ~0Zdk`D_XYEz85Yz({bSfQPoeSt*$I>^-oBj@P3pwI zRYMl9tE!PdDI-3W7#}hD`vqddx5aEAOq-oG{$_Ra^ov)Y{oHS{0otT%?gk$g>;$f* znPvYI{4`6}-Y{BgSm_0scu0$7@mq1^Qy#Ud4t|4OIofJDGpHV&^S|lQcaQB+!E49# zXn^!+fb{4mw07)xiA#w%+#2mL87;cCE#}@jM$3M!ifHEB^)h(P+@=2Z0T~{R6gyRl z{a%V$@T?xuU9q-qCw&M#>IWKBLwxfx`X0Y3HKmqs-A(aPz5Hz^IaGGDm{x=BnStSb z@=qauoB->Zc_}$UD}{?wOjxW7RFm|xNuTgWctMve&G$%T_Fpj$)5ktz_}XdTz9}^# znRXNrgyY8W$WpU*rE4oiSrcq`Xe&jzifX`b9PvfoA3zhLLdg-Z{Fc!gjq%Cf64h?% z+h&t!xW6NMMjvF_5uF!WeVOpxJ`7}*{akN*`_!7?zQSOQ?rfET9s$>4BUxvC;5Ggu zR>!ZPm3`7PB|S*Gfb0vVP=PG=C#w1OfO@jF7ogBaBR&6A$I?iTe3I!#PnoX=j{>iU zsTO4&01NRX7eE&3FXt-Q#lL-XlX^GDyy&5UZind$He~vOAE%eSAWi0ZOZai4D#))m zDhp9tBkPhN_A2ITQR!F0vIIXJie6RX!A;`&ma-AP@Di><4Rvo$@(e^@Sf*-6_Km#d(N{UvoKg$lpgcS%Evs0jius-YmDyArJE2 zeGXa3c9S}b+_I?;PUM>4#9gpE$J$GILre0kJ7(D>i7R5(sJU>-UAm9fNSm%lZBjZ| zV!4G>V*D&+4~@tBHuJt38TCrZ+skB{lfAaCDP#zv9@bg&AjulFlpQW_wzek7b2zhz zDNA#;9tYODmVGMLE|v8lJV$;7 zg2jBrK3)$!GD6Pj!A`((Ica)m2v_$7>oZ+{wT?Ctkn`Ud^Ovt2J7x^Zg!BKlBY(dC zDkl9KRovOT3gcmEpY?1sLS`ee%-~CkBMTW~h7<~lbyDD>VCU2oqcHxEhA{G(xCI}NJrR8UE68F6o)5-X)dcepca zhx&mep4cbnStRyw6YXQHB_0Kqu@+thwq193+(KMct9C5E+8h4G9%fd|?2nUpX+zAL z?!~1hcqac!+L?`61P*QrXr@Ocmq>W)k`aMi}t)~fz&=c%Hd(DY0uq;ES@rJY~e*>09>j(&1oAh`nM z+Q3AnPo9;zsBb+dOOEf6g9{9aK&ZN7cR01_tHk&z(tTm}n$6c=N_9Q{hF-lDssufH z8ghu4$6K%^!47;w|H(sWR<_Z?6r7AFgUJ+POltZ=#0V)Y_BsDq)=J3dus1WD<8>X> zs-Ew{_$2h=Y>?KtBU>EEiseLJ#9H=;?;tA8Aq-!C`in8Vy(sdVc$QePF8Ib?kMf2W z76dOqc7#@nY{;0NnZORCMsI5kt&~GAXv$&q z07bpw7e(4@TyDzEIhTKIU_kBA*K2%|A`N<58?_9;08CqJ)l#RoeHogOsjXcjRY&$a zLYHTALS7^F`a_E*@-Lr%I`C%@~EVq*nQYG#jkZyup2~Bo1>= zeo@GC;4%z(7YW*Rg&PX?KKXOfhEUSV_jUIVz>lJk6>zU&0vO+M~XS ziKv(Pblt&O^(Qo}4k>mlA1LKu%6K9f0 z9^q>^3T`uRMuHHZkjiTj{rBJLhv+{@VjrTvq?e&NG4qrkm7r-d2$RScLUIU7OgJ2R zUe1Qf9@kb}m=AuCNKDytjK%pwy_<@OpSN(*l~2lCK&|FbPFuIVqO*pCz+K^=Oa*dC z4Hw-iU(dnf4Jg;g#|djNd2wzaS0d~ruFE5J_~gX}fwS1{8>OzvE2V~o!=;!bS*h5a z1nT0y>jM=By^7sNLlvF10ufgW1s-{r;Sv_|!WvO}WyE6t=M5124 zPIA4*7;o@CLJ`r6S$2e@(Gn~PE{S#^L{?W7ZP9}228ypyC2`kuv#G61QLmn)MRZV) zq}qb$C)+wn1!lUrcRLF&KSo{EXY&}TimA=x*MCd3XnFfZD!H^cA5d8idm+FfK()YO z13}@6it(iG7O2?Af>i$J-e55dKroNRURbQ|g8St3HFDCG;L6*~$Ap%#E}vHwZZrMw z2`)5NbnGQTtK7zKMaS#>md%pv7hne6EeqIYj(lGs$D;C$W2rJxHbgT02r9a2r6kB( zC-OvU3|AB=tQxrZ5AmN@bi655`sKh_s{pJK7;HUH!6TXC)u_4jOs(<`O7uY+lj|1y ztQ*^r4Z^-b4ugcKYO-pd=7iQGgfiu-;I38;K*bpOi%d4Yknt(|6wD; znN$5GH8jB>+@rgatD8Gdr>}D7Lcy%=i`NTloNo8@V^!mj`W0l{;ZcQv0=vFF zdU$$QS@1hEu@IE^A-JL=zhoSB7=jH#&%hOc832CTs;h^>Rvg=7nMaA&kn$@| z#)Zy{wvSt|X9CEWL9|ss&1{e~CEp&3V^6Rvy)4%rjh?mw)o#RDJ@Vu6^d3-DN+?JYPBe>LG39CB$7&1 zbWjuhh^bpk1nbCPaymy?(Z4q@Z&0%`528w6vj!*|zWQZBFXj?rht4YYUAoA4HpO zad&i&I4H@r23XnU*zLoSw$?C*wc)MZO23YeUc)+g+Z}aQf*8(|P%8vefHDEF&=jrG z9ow2ebXJ86l$Sc9=y?5(J-+CqE4(FpWLzg9;gG_Nz#(O?aQYJKm`$%Wo70(1pT-MZ^l-igR)y>HW9n|LP{o%P)WWx zyn<#7sVJ$%P!K!3+?UUvOo?#BwB=wsy6QFnEOB!PA;4=?gg*Y-e=2BQ5uKC^;#m0e zss6G$wM%wu&zva6$d~aa@BF^#bnrg<9g?wVYs;9mH`HF4cU#A zj)g)h!2pG}S}0__cX+}#9Fd(ki9+}FqL7~vvIzV7<|yio>2QC!Qad`RRFbyI-)T+q z_nN=U-y44`e`_C>zqi-5Egm>&~wiSvO#j!nkZxv{@} zA`D9H8Hw81ERsGwWY!U3r`gQq#>C%smDh@6;-r8tdPi{>kEDw^7La6pag8m>^2|oe zhm_BFdM~pNS5vI&7K>Hg{K#UZzcLSwwNqO;DhKxORoE-SiXh^~2>L)zgv>0aC$U04 zi}WcYdR-RG{~+Et2|aMAqJ}$GHC9J<^$x?E>)IF`Q}JjGqYC6#ydZai;PDkN$dw>C zn0qFKM|oV6BfH#a$Nr%~=v=q!GcEcj9yrDte#fuG295c-V4#k7psDT1a!*|Yq-LB? z5J^~juDaz zDzD3(Wjjci>fDaI>ZZu_Jor;arq7r@UhbDn_VjK78}V~6G8LtmEy3|vbp{DroIM{P z#oyUUt* zEUl<=Y7gdR3xIBU*l*k!_8UvHw>$`3s*>O<<_$U(?wlJ@LIa#W(d#MzI;Z&cT0SBu95m?Ot-Ome^k1Pj2pPDHj#<(3@q<2U8j>{a_unxB?cfoIB6X0VRL+GyGP`#tKs@L=$I7+WUX|16S zG|>}W$YA^f9}s6X1%d42IDn$Pf+E1sm~&_w7b$Jc#(q6*oSJ#`FH zSpsL*p`cr?i5+~U`_8l7w>60aJb502KRx-a0EAcz;a-!!Iv{t0296^(=r+VwQC8}x z|BgD=Pt62L`qd+3rZoqxvB^|mA%v(67$FNGw1y{nBR-kCVz~C;X!2CozAZ>W-|{Zh z6$Qs*!8ss_czf8+@vs4M*l6)MIs|b}cRO|ows3Z=5sbkxg5@+&I@JFh;iI?_RQScl zXJzm8&lf(?=lDu>IA43RIH+)h*fQMfl;cVvCWJkQYux zkvDL;bf`U;lZ}Hda)D%+ofb{XVw~k|?swO(o-N|Y>N(1%w;aN~hB-HWpSx<`dtXY< zh@&z*$Lx77%uZkjc-eVr%6n%~YG<|h3d&9Iy&EmQ9`WIbvgyrLZWt(THmwlrAi|7I zGMQC~)m5|f zJ39I5hEyl7>eI7${&Dq>o4Lb-T0~K8%ysZKW*ZPz$3;_g|_FtgCBDY zJx=<8=em#znPvGk>g8!9Ww@W=m`6n~#ybzRkLjTmHr%lyi~5%6iGX&Z#HV8K2VWw` z5yDG&GJ-D=P4Q&#To`}^8cJyMEUuXqI^IdEx9Jfmr~dhT?PU81r9rl=*jk z$NYDsKzl(S&^9ec7EZLE$VBmYZw32#57Gp9GTHCnlm@z_yM;ayJfr#fYp>177`t(M z_t+N4hM~>Rm6b6E+r~CyAPQS!?DnDC)@tygeBB(&9ooEZ z6TYF=N+sL7^|2lL*e0n)U#seoSE(qLC7)D9Lp#V%H3)_Iw$C}VnL~u#p?P2K(2ljD zIAJ+Qvu$IA-&|ye`)LxaFtYP}DUGealcFM^f5uFgeGCs#Jp8+(9=G{F%kVviMWh3OyMhPD(2ztDuH7i^m)2LfR~2awEtFO5 z*o8x#CGQgi5uz-5wN_o*JjIw*UsM&DQ9mEAJC9A4MzAgA`LC1b@XS>wkl%^}ku6xn z<8~=}0`-W4w-(2asz`mPNb;2I(j9S+V+)}bm;aSxsy#HDWKpmZH;nJ_#5G_L;&!cm z9WPbdv-PSWkM`^~URJ4=s*F48=a=AnsCob3xt^ihv99z!?he-%)>9XXf~zJ!33Uh= zI(X5&22rffP&3uzXj-vPo@6#w?31~IWp;-8-IoOxs3})i;Dq5KSinBs&7so4?S!ef zrwX2ea%8vSuo%@YJ+T!>MO!d=acrmQg2`6$l24-5nN<;g{d@-Na~#6?leTIMrwXcs z1Edq}1pONzlKwr3eYmWvtk{g~zFTjyltG$+5XvA39d9p}`4wu0A+r^BX-s)B{*d5tWut4gwOAiL!e z556H@=_v?gL0}?g)q7g6nz%nCWF2$o&gWRsnB^vrH zctYlJDT36c*Oasf`d8gY*T6QPptZZidKR>XrKYdwE@BKz$N6f70bM^>@C=WVg{>{O zcU2YWXJ4JKNBEWEf_dvg9SOPP;=F~34EcTqlcj8#dak!3b3rbj)ws=Na-lMO1^U_q z^&8E;vC^)y3L4;K1Fqj-U7)uA_O1I8PAkp?{M!Dmkgj0u7e50-AV*pz=CiTr&R2V+Z=lCKfyeF;xFXUhG)oJ|IqW>jjYu9;< zRSztgBfd+1`M{eM_!ETcI@?__U3s(FYCZsO#h6~;R$VK@)!Ebn**shIl2*`tw+zuA zeW);(9`%k?JWoqkJQQ{t48~|;tl&(6ju)Ph_~5a|+On{#NsV=9yufEkWyDvXv5ldw zxETN*K2=-U0zlcfq@Q(D&OxK@pAS?{v-){XZ$Dob;__Ji#Ma$wtoPM^;w_n4J~Caf$v%+<_g^I1$1=d@DD|YbBniRv&Z#CkT{Q8{TTqb@p$Fr zc8mG?BB(sa=dr;8bw1|GM^3Lz;X#01FL^WgY3vKCOp%TjhX10eFNUAe?|Vp)`E74x zQ6ZdLK}as`$M7;{(J}~+=Hr-YanZFY+>Ace0Z9iFDxbZE!}%`VKAame@N~+O&u0Cx z0saP2v@xx~XeJQ)SD}5Qo6T&*qS=wj1@7qY#Ko=Uvu82c+{XP(X1iq6Lmx;^biT># zB(s(4YOAuT(eY;yfL*C?gj&AlGin>~MXt#&J2W@aPz3u5H?`r0(|Hh%5&?~g6yA`} zYoHPy3z}zEeOYOp`=)MR4wWK4p+5LE&)hZ|KFTvriSiI$l`Vy5cwG zQWV)?PJ_&rMe#F+1D}j8tCdNV^a_U-x<%nDdPHm+Zez0G>lw0|wP$Czi@?}I3uC8o zGzi8{E?BW&KEpP{(2NbB(|nhb1YA2jTw7Vl7xD5};H%y8GS3;|$A*>Ck(eknxEr?w zD`-8-8eOpzyT3p|^hoFf2Pb`~T}CGcboE;(fCp@M{=Z_i$c>c>t0@`at1vBO5_ULsM?I5UYDUvR%^cnZ3E0S`Jv+O3-aboCP z75BhX)I;AGXF!}6h`Ha?>oG&^$9ms%+jcW?TGOV-_AS9Xz+YyQp zxkI9lM6M}l*s%PA$TV>aGq&H#?0Kor%8iMm5KD&XT#7~MP_JuRUjk-mc!pEyBB5Bm zWFOMDVjQ&a_X6!1e{q>Q^c_&!5OD6|3mqNc-bE7U!POCLpgJL;9b2W+0s3ak=}GKv z_I0mu4VuKxe6MTrxO)IYr};3`E$BW=eI4OvK8$IF=D9@@sK{lVa+&vYY|ZMuw85Ab z^E{W{kDwBUw@1NM6KZSWo!T=tsij_Tk`b(J$gj#3=1kXK`d`wr-E_cPaNgcD+U;rz zx(+oL4N$3%y~qwX0mf|ZfKPABr;}7K*Y$(`ANZ6;ZYsJFT|>)ZGyg5Xf6Vp{iAkthWQ?j!elkr*w070z{gk5E6On2`55Qk+G+aO z)X0V*L#O#WwKD}YE*ACQqvLAW$p})m!ontz8aW_Yt|}6G2{!CFZ$uyGj`&Jr5>H;m zG+tZE4bA-df1|8fvX||?&Xu~074b!sJ!(IDE~8Qw)E@K5c&@ed;d)_PSE@}?p2{r_ zK(=HPnLv@((Ix3#xy+A4qqD|bB_~}|-~=R}fgx~X%1fvq;tpXlqkH6tY^ zo%l+TrdiM}S1VSG^ihHqL;qJB9WgfpR&j0DmP_Z~dNSGhb(i$%Ji)!B{{|PB52g2& zcJF5qD78*nkh`Td62}2G4msJae#;=Zsg5I{bB%1rW~X(+f9n9IPVYZ}OlttrPok7E z0;|jCq`I8nx65$(Yh+{aIhuqKUMao7Nn(oyU?DsG5);Ahw^u|!MP{khwG>$64k5zR zzv3XIYVfuY30wC4Tye@KEZT+s(~edc|)IjF>%_Zuu|CEF*aT$i_Z*14^xCOrkW zM3pUU!U)1as z=E;xB-r31W%gy6>=3$bcvEpMX98K4i+9To2LQP=M(Up4B^s=%amWowgrQ#nQ8FG%v zxFqkyU_OFVZzz$wd?(7{9(7jKiLi4)htK1&DH5JSE#o znx7ESt662VIk{v2Iw%-wu z`*fcpAeN=Pn$@db>CZuvaFrp(+E(*&*yEJ%e@~qM45!OWL}aMOQ>3;AbEAW03B3tb0K=CNGSAs+di*5G4YBgbHkE=Pn(m zqjkJ;E=gPnBEMAN5}>*b3eAFn&K6VB?8RY~sKxB`mTVJe2v`|41))-hmC--Ea31&D z7thY9hR=4F-`MXrzVw%TfPBec!X7_Ed>Fq&eB48U(=lERoXQ`|l26_i%Af1xPqrL= zgBl&E&z$B>z)i7Ybj%F4`oX4gA|oX5$CD};wfN(NrRp!9pBzW<5|8WEK(@Z#c{ZvL ztuP4U*FtC(oB|ljHkgI%e_0$QbSD05z0rBfHZ#i+e@vd@hmx2VJVolrnX9kJLv_zz zYxzg<8S8vlzFGWWm@mXU-ll-s3+hL^~!M?DGGdhLP#L-H9q$m zabL;jexu7<(p7C7@Rl5aJ(G8_40(rn2D_@BH3)E?hdq`r^l@fzpAAV42mm!2$x4sU z@rJTB`)hI~#-`Zqip~B56{_KbIQ*72QNMjfLQ|H!!X?~W0-|sAm$WxJj|ZBWRbi)u z{#3e7AKBF(QPrb--fYFtV>qhX{R~^Y-w8)a^wWtV9%kGkgCn%+p5LHC zIp(DHYR8wVTRz8IYNllLnAxdDgOS)*kRJkX)j^#OR@d$|4oYvzCEAU#wYp?ob;*|M zlJ$P$mFkjRM1A%d2k1#&KI(jqj_ol$EAMzcoHtx7#su8&+Rc3p6sjGcdzs(hn%Mhv zCDo3oxI%;2@I@|eiGH<5Dy~i;gsaV zF2+hq;C}hzRtx7wzCoq0zJ^~`h}Y=yl^m!xzF>KHOWt9=&a)PXlRI+Ops=${Ar5o% zUQ9@CDO#wC3YPl>%UfkeO5U*%J?uP5;W_>NI40)MQbJ}`Fc!QOjBN*FeRv*q9P}A) z;_}pw8-*m|UMz^al8aPT7ML7%PNaRMkoZ<=4L)wy`mm~%HPM)z@y3+1C}DmeOYlht>emN9ajr4@7=3oHv#c} zhwh_)=eTF+Pmyjnj2?!lyQ{{XOM=okZldhgL#ptgKCQQ?)(1DmoOSyg zn0TQ>LZ3+W5>%Dstls3XH;W3SpQ1pHIM42@gTCUL6ouH|B>TGTgaJ+2(Kx@#Ty~PG zSlW}8>^8%>Dlq9+S=#D7fH&2)<;lRB8P2p9`KAVkZOmQJQ67b^9d1)Bsr8pw2$}XGiZ$9Idp|{_Hq<>1_Km2y(R2gO-g1s@r1y zzpBOTc0H!3u)uPkSO^eiCpZqBipBHs>LP}K5S+Vky0ktEefz7AG&(E7&go+Iaqq|R zYRTtCD&j*OKhw`$I$96~|1-q5PBf3(qAFR1`buMEW;lxqzSbKhkmEPuDhK#MB*$;U z&WBWWyY0PU%@wet@dab;1`jwPeBzVs6_p>XknMm|)vc|0QsuxuYyjs|=v>L%qieyJ2`@xv;+aj&|Eun9K}(9JY^qs7lW$G(4ha*0_3 z9lV&>1#%CXVf>^{phT=jV=x?D*)S_Hc}II%TeBzhqO_AiK&%F#TKHCO=uV0w=iJHL zIAN!4;i1UFTH&vG=kd*l|F zfvKQW7#5vP&Kb#UwtF6Dqo-4VA`FaO*rSR%5 zzJKJR6r}I*9-;@g(&bW)z;vNZcZ`mFMun@TV<#{r#az3C0SeZ zHFvClS&C13skMY!agHMn8oc0>w)z?BqdGUrrp?S1*ROTdG9T^H)zY@~pRpX4CTF^# zN@qcy&ZgQn(DGe>?K;jYd{xUd%+uDOhlRx>k^YE=cU_^jCRbb2iFB0JQo9u%y7|(O z;i~iV+>Wnwj^o;OioD+-il9mzN|54mH~iGbI* zve5kdq>+jsUo0K0A-1K%JR7wZQOsQo6I)zTq)-IbYL2$*6>e1i$UTMjBB{<5X52-W zE1ryyPrVBTy(k~CnW||bwvtj@)%}LA&~4N>8GJsf5P_?e&TNqz;|W46*a5rGX*#s~ z3%eE^cS4P`PeBybRoeWbi72SJiz ztm-j(jKxlEO*veKrI?=C@jZ{KA9nqd$#ooGir&(#dMM!#&E%RaWGs-FP?e2NBV2W) z(QRZl`i-pckZ_gk$Q=0e@U8eoY{BHk2ImBo_t8fGqgfIKywUw=X5)-Uxrx_EM0D&q za@l}^E3<&;9duc7$wFa_0I~eg;yg!i9M;SAZ&8mMH&cy6 z^u{U%#Q#?irq>>~8GDiMsWzUI#=S;HXi{cIV90aQCBvB+A7o@#&~d3weB!_b6pE0e zqRK(wA0H1_0JO)NsmAWxntO8*DzNe7R41{k z3$*}cD6yZ$M;&bh7HY$ZfxDK}H9M+&*2@vdLG&=&B@FwmW9@^ep$?9O*Qh9a10H(h zdWv43>o@lCQ|NBwqO?_ZzIp5rY*Al@nN{QSxun$KX)5e4z8ZGWEdI^lpBv__Hi%NJ z;K;@1Qp(PA8hLy?=aN4k)|RLK<3N!2nYcXIN-4QiuHo19Hr`qIEjy$??G!2deF|bL zn;2PdNKAOEfJ-H&hs0cbpN!5*e&fO&QRmY@HzTn=JOdHQ=L^=x&ZRPAdhVfSSU(GB zCF&gP+O0L5#-r-XdQKQVO}9EgQc*q_%!%=ZOcQYd77Gy1fOVNzKNmp=#ENTC?vf8< zuL@&{e4Ffi$ndwC-v9$&t+4&0BcmgV@ITU&SP!4%csPMrW+v82*6DMM2N$!;Ky z(gz9JN^ys=_Ah__^PjukH9p(^37jl!>h5u^(;7@h0fitS6U_BSe^C0ZPI69{93fW* z{v_ztHTR}~B+e6RGUKmZxM50kf-FLC!*gMi9-Wfu4!g5cb>*wNs>o!`&}i}0pt{twIMpSoDA5#ug9_joxv3;e zRf6&X&yMxfmvG}8^?@PGfkYklyE!svNOvw4lsl2*%y!n`)#~R0DN(KWhQ1o6HB>58 z+G-9XBLyNkrh_NtIo3P_0-rLFvbRQTKpXjo`}Xx2i%`46g}aGF*9lZ#TYNqP-|B$*xR8KkZ3 zlJ(Vt7Y<#as#gC#3GT*Ne6V16!*1T}?k^bWuAoMjbolDt8XNP`V`V}fYEpCGT)!hQ zDzyML*lmTUh)a8b0W?3lEoum{gvoSRVTB~s}(_oTW>rK#0Pp`+CKxYRjX)!FQI zJ=8(tDa-d1e3Jn9LvPIr0B~(Sl{xieJ%#5lm%!li46XiT8M`sviB^+VKa7{M9U>L3 z?3&146C4W_HCr57G>7&P7y{*s4VWhH%|w#z#>@!fHa?_%s$xX&5uF0QQ@;|i$PD>7%!Ap8t7{SDE-5}bn~T`Oyz6qb*o3-WO;bKL{#>aTwP#qq z4nnsGfDo@I~CiT@y|G{sVz?*2WU;6oyK818Z$*^t5d6gu9E`T}yNxuST zN`a9BE86vI(!XI6`{n?{cQ5O4V-uSxfp1$ z%ZiM3Tp4ERp{5*A*8zu6pd5l|^;grLyAj(qPyM05xz@f!X}94VEsiz0a+`;V2p7lYoM;$4 zz_TFlD2lO^=41paQZx0OP?)`hpwOK*A?UyPDj@)m3r#vLYZKTnf!Ey;05CY|Pi>l(ebPI6}0&MN-I*a%2PFCB@g)Zs7AHz%Dx5+Y?zF&?j2 zSnmfoPcC8Yr+Q=|{{!Gud``c_?>|oB^nQu+CFdpm5~oSx8FUu9SOh}aGi|YbJoL-< z&tLSBeWEa>NJXx6H(y{WObIP{Y=tRXhTQ*-Qwj#mm&lEuR*PYVL~aZvFhYGzrrKyn zN;MHs%9N}iC3JsL?(*#Dl-&4nYuUFlDkc|c4Pw!ytak8!Yb-2OPQ$qFxcs8RbXA_~ zaG+F&KSFJx3U;V19%HbeNHE9zD-exmn~$gy6EzPL57%TWu^lgSd@f{YMLaObrFHSjum?&ZF@w!$BycUeCxEC*Q zzu?jQ@s9+yA<5F$`A$`ES<-7%RT zC%>WY@7M!B5PawqSr9B)7RCSEn(X}JAKYvA!@ZuH>3blyc57bPw%E^)74E5w|RTv#s zHN!+9Oj!q5qg7!ml%?LO0JG?5RVJC}ld&CBp=+-l+p+z_vD+Nmu{J6zGg`)Ohw_n_ z@rJnNaCEHLr}3Xq3%L$V8Xy`R&0Jw9PgL2#U9Y#^d|TIscy{Z}SOciQctkW8QLw$5EF7};z6LNjC3j44KwOZphKcP7$jA6V*9Js z{P8FBqfS14;|S&(IUzIuPY0+}Ybda*zQ}6UJlFm`!~Q+h{*``)j*QdlpJf~X!Qu`@ zr#xoYvq|=5`tvbetfpnk}l^zc9aA0 z@S_6`L=J^JzBc*=ul{F9$K1`-lCLLQHh$&=jtDHqQBOzv8x za+RDNO5_E{aGxw(T87SANypmj*d9Z%!mbz+0=@abXt(2Vd;}Ttmk#$B-?&S<-6aXV zIe|ltL~yEMG%?F1hMe{eLoS_&JuXcE18wCeL!ql&F>Td09?(`R*^W6LaM2!mnFPV1 zmx;?K#B{l|Pt^1k-BgeW4)R3j#^V~gV+guOy{C7*sfSt}?nrGeZmzLha2g}<|M5P` z_#z>h#ffZI%&;goaabuiL?dqm8B8Z9I7hWN;(6R_$)Wm#^w&{9daZPkF>29I=^-H` z7@bz%#j8a+*JS=eq;+CoQIcI}32jU93B zMBg}rI4*U$VK{6*5FbVYu5+6>3rOVdQ;MMP9gqj3AN)WZ&>GHUl3AatwOrvk9cEZ>$lgsmH#LS24SUsK+v!n3}jT#994kins0`-qkX;-RNj^HvmNE#ePRu zqdU5<_i?}dsE59G26NG8x;Q}|E*i+HS;p|en_SI-AG%8p+<;Z2ydpGftFGfHf*B))Mlg9`Xesbk*u|Q0Y-BJ7^@YU*v^Pozb_j22Wv4j3!j^q}< z0@q%<{X=~$js&(b+Qp9T7(R1lP~HeIdvRcPpqmh$$ zo;lj8*>BbCA5im>W7dom`q&khn(NWKpi|eQx z2ltpINc_ctxwiTVq3!1sPeS)KQ7!ZK0CR{0Mq4dhN71XT9I$B9cf7Q{_=X>(b{Fj}osyl>>S-p*n>R~sVV;~y``|`Fv z4vT1udB#Zt4wds(a*-O>k7e8Q;8AW@uaek@-58b2k*MbUe3Vknk;_vb)g0{Q=syHl z5!kgs$5u5knZG#!$Wp8_MyZs+%AC?s*0e6^8XYI->rmVoq;$mANfkMIyHM>J%JbT~ zB!5J>|6+nxD2hh|qc&JflIY!~T-mCPSTC<+p+(fH@9{!+#btpJX3mX3Ghy!!){h;w z0Uz#{1w4XB@7^E~S05`I%X_Kp%DP16J!kU8Vv;5+*)4lbMET<;`q}~duQw)=bhTF5 zIIg#bII$rvvtlbO>up4Yga@SZ;CyTcp6UwzQhx~$v&(hjSjMc8E`J-D(_87;X_daI zH=>r)6G{|mD@DKtt7S!|Sj=a@4eVKPQml-`sOQL2hqQ)qJnBY5e+iuj?tJ(f=rs4J zx;o7lXUR6QSJ)@3GNc~9{Yj;DtF(_;9pBo$-Vh3n*Qc^d2nCUgCgGHR|0obKyC&^i zF9odGf?uyAPw)N{CaG{+?x9t@&Vgygf@p<;XCvfwFh;vt!}s_sw}%NYgSr{B;@L_w7&;ZtiRMLY5rl{24tata6X*XLL%Orm5Q6JNWo_*<2Y zTlIel#sI0z;M^k{4mEda4RN6PqK%te+n(-i-L889J=f}61M-vvtn0}S@+YlBG+$)1$f;Gi7)R@bBvOq`pW(3OX(@hM#iaAB z{cd$yEjug2Rt)xJ*}e#QQmWAPX@%aTX>f)KRHVT@8wBKj=i@+ zxoJ{g;$x)RQv@NhdaLcT!OOQT3RybM_4e;e)-UyX*#*rtyb|56?{Zw&f9!%9@zJ44 z=h^XS9)Zu51mUae>y{iyX$F+C)?#jl0D!*7b5;3#KwxCaqPID!4X4xN4g^ns^PpxdU zTxUo1Ze%u?+7gxQu@>ClZxu%sZu4*#L#*vSicM?lGKh=^MJg#QBeqgcULH?&U6gCIy6Amiap!cnR6(W&pukgjAJV zN=U*%3kR^l!9&?0Y{-^XNVXYbez)c$tjLTlB^U#@B|0RV2mhp7g}C$9;+?6}=h$VQ zO2vuwIx*>RVE(0_(^6aWMXZfG4ckIFZjOsYL-{Y-0LtstrF2o^3ev@y(#7T1DCVZ| z8u{P29I%00vu!r#FsWoNmBdB}6gc(HW(?)nS^3bwQEq@b&0l|&^oHo@@|PSAnljAz z1wfJv=vc@apq<-khxy2tDo0Qylwk~7A|bgI+LYmX{Yx1JqmiYIiqPs?fsb(SDg|s0 z)G=e|rU%(<(}|^i8^t-HNhLP(@sC%fFkLl~zA4yoj95l`=)L7`$9^2WF!UN>2Uo@m zp~`DiOl-~FLb6}(`ahxlI%}`UK0F?buyn>O{`)xOOgiQm7f_4;oo}hj}P(WQJ&-oJWt`8NstKA#FIc ztVm4b{{_f18i$|+9nL}p+UIz!x}-JuiK;ef#w?eYlijZNz(_1&L`+d+ye2qz7XW72 z`i%8r0MkT898L3kZw}vIr`ih)S74N>YU_qG76m>MI~aETN=1cz%QUB9-nrAi9rMr< zEuQ3e?DxAqSn`+HxzwzDR9F<*9`nx%OO*Zt#NegZ)KrywBk6h&I1)e}p%@Lq&bAKO zqseZqSPT$)+($gdUZ8_^1h*1A5)hPBpz!U8OOPMy$h`5&)QBv^?OBniqr6uCB!3rP zooFXw_saj~8P@oJTIry^mFnT+By^(KJii#Px#!B4GlX-Po?DB zDIKYlBZNYbyvIq331kLzyjwbcy$}ePcF6(#s*Yug87a3;=#lgqx$lK;S6A@dihn6* z2Ek(TMyv6iA=%BU3Tb0ivGCL)6}s^?TUG*Tj`a|ATFTqC9p>@>mXpcKcnn$J|K3e+ zI=RVl?Yht6tW(=g#}0D>Bf*3U|E%8Hov>eY*T+jvVQ)SQDKu6oKWWm>S+6VroxYMS z!7t;QIwLzxH!@sytzo+36J!%hT5PHJ7BikR;QX$?ht{iUUAA+HX3l#s8sIsO0 zTq;k3!G}0OY+(~^!Ucyp?iRi}{d`QAccr=tuHd&}_5!nnz&5U}5-;socge8g5%aqIi_SS?42tj9WnqEj)YpDPzpz(YKNqK!i+&_&ZQb8%YCC*R z6VFH54&Su7ZR1V*+BVK=Z99DZTgh)cZ)*E&<|}Q7$G6OlR2{+o>FA%Nm1BIW;-1oy z%dBV(=qn{+65Z8;PzTd?q(ep_il@eFxCa3D6qLS*?IcMwa3*qhku0+N83zQJ^=XL& z22_KH76eFfo$#R_m@-Qu*MdZw5PL$(!Vt`_HVy`hn1kD`k~x&bNv$51vNS|lGv31Y zY4SbPL=)e+7p{TDV&|2;+TH|JUH^(LWPnx|PNxep8&8h4W+Q)`nvF~`GCF7dq;D48 zjvY`6Vmy=krY&tdn1dZ^4&FW*ps~rqO6aIxvc#_Fs9)fdJ6@4h5t4IU2B~*7L0BdN zX9?y&e8^!g4yueTXhN=Lt3wm=7r@HqMovkR^uiU%iWJK0->JqOf%>d3eo8%3di?;8 z=pQcVa}yEj;J4&%lQ>B=oCLGeX@n#n1)W1XFr0GQoP_pw&dkWEeP-s8yopIiN6sZL zD9Y&QYH$PEjgEYPe#^1*UqGo$_K&Nhi!kKqgCTtwS)$XY7+DWbp%XUSQ514EVqh~# z)z)dALTxHUVEfTE@{UGhC`OVGhY*Ugc&QHPl_hkJ-uMJe{rFOQcDN zfi~zb{WF<2RDE(!;_enN%k;*YO{H;o2e zeX&#}n0HXBB%u0i*lTQ^HPyyGH^1Y#7>{H6%9^5!@LktEgfO0Rd?uQz@qR;wa*^Hi zo6dgx+mm~#pBK5NCRhCHl^1@@GV$XngblkWiIWsgW68xwRfQ&7~4L@POtE~GVzw*#K zqwt~BwHxr1iV{e~SzO^S9t{-EY}PXHG0VbCs?cZahix8U&9Vk(1=1@yjnabC1;oOAT>*U zK`lT^vTa_k>H{PN8(8WhPfUVmw92m4i)^z$WOULjihaS|m=bVC{ffCWx^bL$V7cx} zXb+7h2LqT;EIgD-i|;-R(u5sVt1sgthtM5z8?8j>&R+d|9T0IxtLhte1#*acaRFx* z9$U5__K7*}ha$UD7Pha&FUIY)z2sD9}66 zsyl6i(n7+h!8T%&f{h!h4_;H30P&;4cGriK!}TS}oB7wSO~G^AGaKqR1n_-{*}BKr zo(?g+;kBcHEM|d>ZDyBV62r03LnpBt$1<%Aeh2Z5Wp)H=yQJy6lTE7_F~BF$t{``K z2?2`W5c*Jf6KRid69hY98H)sc)%QfMkcQM?I?+57VFJ1*nlbp5g&}ya6Xt4F4*8{M z%>Y05+8sxc*xh`4zw>leu^@_w>^?|{X~-{&_saV~_Y=J`3KbsgI$e&~QdXNk8Yo_j z!3D0^sx{B2Y@097k}8gU*o{vSxo_5?UHwf&0r;wqOThq^YG7hRslk4CB zHszhS_8Ck}^mAR^%l8a8*h*A``F&U2g8m-$-u^EDwuY;TvCG)1M{mQ*qs?qCQRIJv z^y?p1zsyYgw+CjU;y$)X3G=@3G8HCkWq|3^s9U%gz&1!2>z@~HKCBt9u^ET@{@Nz< zrc;i`!yY#T*dZ`dEN!fddKBu4$JWhe-B$%TAQIxMj>39mQn4PH2)7{U@EC(w@7ytp zo)_X?GLKbTk;s|20nCF&QZ^qVYD%-=xI%ca->I*!=G-QwY)RC;Ts@LPfCVF!apGBk z-Q07jRH!J1^kb&3XR6kq^rmguX`w3eh3adk`G;eb@@Wm*Bu}4GFWIH;JXWbGTEou= zlnUFWCLXI)d2n8`odS9nxIyN6@Ue1N1d#en#A|L+7%WB3k|Mh%9RmbE4CeHs9${gm z%YOElKV}#G?)hNKwbi1tcr-#UotfmTHF0d|k1jyakChEXOyAYm_aIB7;fD8)!MdD4 zA>f+v+e=SE2&+hiS6wLx*jJnXwB*nGl_bumM8+*?R|G=WZai~vOogZ5v|zoucX3~4 zIa$)QUWwb$`9t2wJe&_$e&um1Z*5&gDdFn9rNByAjLCH&Wt5{3^{1Sy<~Nt5hBW}U zgJejef`!|)k^(xkAFC9&EmjSEOPy<%dgNH8!0o{UN_8n*=rnIUR;hBW;T6f#XB{=$ zrOr53sfmHXbv+eY!{Y;r3eR5#_o3q13|Q{^OS8woc<=e4)*wO1Qe-_vyv8^TXC6N| z3R_?2dFCSu(K;i8%#}PvrZ~S9Qv|XWirwAYuqXzI5Nirksd{3MvY*JIx9mknDGSm1 zAC>KapJivY+touG==V5_qZheye8r&Umsd=2F24lFg`%F4BO9`Kf3g?<9mbTR`lfq7 z3+*LH<8>3BV=^;ZZ@#xnC7X@^Kv(f+ z{Bqk9Uw`Jk42*K9g}lI`yF_G@6JM0<25E1u6Jf;YR{~CVItMAOP7c#feZj zgCFr-liBEO{)4LBP}fXUhKxx-$Fz3XG~G~k0e|s0_?$L~ z1YSz8D^7n(Uh|CIBq^=?vk2T#UtA}(xHbpR5y5nkFDmYV<`fs}p)C-kcz>fRH{O+{ zG5nAzmNnj05j=Eg^<5-NfUJjP=Mq#ag{Y$jWT6a5BoS3IuZ~wI3@F2FHZ~wy^zBojlk)cqmKm2FXr^TFt#^h3CsJ3RB zQ!cXe*;Y9Mky8bSaC;19`)ivqnyPJjmrPC(gB z7!`6T{f>Uw&#hIeGU^~v)9y&|_VA0zC z&cf#nD9q-wH8Q!>{Q5%lJoD-t8zRO$_6~Q&!tqN6duu0;U+)f0OdOhAni=@vw?n44 ziyi0pg^W;YlgGQmfzZT$Rh-vnl$R)d2pQx9^wS-=eSCbYyajlR-NJs*+r%wtO}wBt zZo&LYw(d%Gm)dGpQ6m0mUC;Qy8Ff9b0aDSsZUjBWeXQ4LkBN^+Y31+*((A2;X&$tn z4w~;AQK*SI-AYusN5qVS{=8wu@u1B5u5k(tFK=eToMGf?WSUofgkJr>39MtKeU08w>&=8N^suD>u-iTb$U_cIE~*R6^F|k^df0lb?`S>gXq1R3>R>&p~YB9S*6M9!O zKG2&7FuGP>f0WJtha{#p|FS08t!soK0SU1r2criBC z-2l;iC3s;_%p%hM5g|!GhP-#AN zz&cf)1xc+irt|f+QnKt2+9zf2nY#wF*JE?x@Qx`{=9{8yGoN{;wo(|I{9vVVL@ZT{ z%#l3^wl)a+veJtVoHQ|0*do(C=s*Bx z9E^e*s8Ea3LkZdh#$5m9aK_fH7|y>^$vnRyVuqpK+Fjn}{aNP4WKrKAlJ5}=hOsyj zo~a7BfVh8sb*-w}vDM6a=6EdUvz82-9K{0D_<$DuB?KlAw;*jyA%Bd;+2oS#GjlgfbwOhQ+`?Abc@&WgFTxtybl#2s>c*yfj1mubM62ef# zKSCFhlb6uXX8Q+%GSy-8CF`Nie3}Qnt4&Eyp^Pc%L7~uH98ml_z_SG?2o-JKsMd0~ zFn4E1Alci~grjM=RDN9wmyD=jhVXJneF!giMXO*?uYgn{MvK0&2*==otX<1j^MXl9 z{5o+*N<8*kz7Q%UKO&(&VC=#d>9J6z)Iu2vUi8Nt&;^l85lRBM3w9F^1z5-)dI;1w zE3Wk$R%JRmIX-8S_~&HD(!=jM<8Av}sdp1UuBgyJ6iWbo+@Wg<;$h zKMh>!#bn0yU1|?JZ^(rVr$azl-(kOE_O|aWx0eM#5Qlc}8#@ z&W9hAdo5ms9qAWU!LyJoaio|ZC3U@{BOTW=X~6JSg?>tv44YSU$gSJ3rA!u43gh6} zd5D1b&5#nECRZ3vAhI6YwB$e3IkPW;tbBjE+mMARQKY&f#*5t*KP(N5GP}=`;fDlb zePxvnC6kQ5T*?=*p;nTck?feZR2jp%^AQNji9>mTuPs^DLgEhrfgs}5H9SoYPq<7^ zv`Soo6-UIwK!B(ts=*|gp6Z%PjXx$eTWp~ldV3c~#Ck}@v>6}=I6)Oa8zH?L3oq{5 z3S4cewnd=r=&jZ!QdG-zJwt-Omm{UJpKhA3wzX=#vmC|=;gM2mYW?*CP_%&R>=B*X z-JCG>kou1^{IK@@fG|H*6D?jL=tE%L%kM1un#uS&j}Bi2>D{ zX4GpowtaTfuoo!ScKCRWe8KzLr*c-;T^_%iY@(l|GVxK$r|EZWq`-71iRtPfDls?o zl`~k@J{2z%RC5k4VgqC4&x!IUFZ5Mr@C5s#H!|HB&#@bfuxOKq-7(I!d0Yqasqr`+ zL?Hj)o0BJ69kb0jmO*+oo}swva#-&Xw`OvHm6s*V3)o&+2K%p)Wzd0MiTTGs0Y<*q zwnRtnR;gRe$E>9Om!md5$F4wePb!pYeNVbU#g&!iI8`~7FP8QyRsGIt!1SrA>;k&x z{@PrVEL2yX5!@-q)_d8#RX!pYU2(C=;XuV6G{2%F>+H%lJ*B$ZzhAdVzy4P$VRx&P zU9=L#;FpON2{78NQ@iIJiS^58r3pAMo=Z$t^`)+&DDXL_GR<5>J?1>sM(~#^GsUTi zEnA)ZPg6%q_mI8@F|ZVmFpw+_CFyXrDX>r`ooH)bbe^7SQiu|7`sQIVnR@iP1o1cC zhRvj3g1OXA9xCe-T6hx=%^&0@d)BuJbk#@L9h=wNgvFU?9*P{lRcrVm6<~E193_@& z(QC00-DLho6FOW(lZ5u=JNm}rh+lNnajNl!=nmGvs@7JkXv%#y-374DfK+JGP&V;5 zAns%V#mA(^$44cguIVG($40SEd+-5S4!!du3N%SW=FzEItquH%-WuaOagbYC*IuX9 z-%fjCID#_#${+A741^j1Q~lqmI+LcSMV$}%9BsySzhi?MhC9qMue6i^KaWAdD6rO# zv1)23zSYW+@?4(?EEGD>J1sitAxDSL@r~cnA@ESO;7O(r6#B^&MD?T0o``pfQm}}> ze&L3&<_)#eJgQs&lKSThXAZ)gjti)OcFCvU^+RHF?GvQ{JQS|Fix=R(tlV3R7J$$A zQlL}rt3Bdv{vgXAowP#s6Nvz|)%-hzH}=$C)!<)+A<#ID*`4Ui6j_Q>^Nk8z`t|%rT_JX3O>_t(wDmm8?VfO}od4_~8%J zSg~SvYvnZGv~up{w_nab$$lc?lH6ga^U83b_yV-*FHB;?G12;w(Y??_JCZVGio8?} z0tNH$-Qr?&b6G;Ewwkxlbo}_T1a6a~#T=XX)^>fd)T4_t9}odx2)-K35&MUFNA^xV zViv(=z`ln(PMiY;6>l^zY*y1mVtxD>W^Z1iJ^p0Bq5Tvf^toE5yjMQ?wjx30c zrWtw`J?5G(t^3>u_CUEJbecn;z2yKZQYYIcfq(Q?v|>kYV6WxiH1EDsjv^bRo$6rQ zMMbKN9Bi-3!S+~smCy27S;MM4axg_l{?V@O^WRBr!CPf^irmquIpXC9pcl#RT4YWt zwhphN$e`50Riq9sF@uSYTtYSG8mo@6b{&=2zi+ipt|IfRu_I7-AUZ{>9=SX|94cFp zy-?X|%awb5RG_Bl|F;zI1*!`8C_KoGCne{aj|_Nmp)#zk;Y!n9`JQNE;MuzaXOu{~ zgdYFJ-vI>!Dq{6pVk*@RZx&&$=tfBS$(EoB<+MR^yTPX3DNpE5p*37oDC;YzT}t(d zU~YSkPzCX!UAsr&?h1{zh$RpdVrjN;Bj$-4viVR zEIRoiI3T_=&9ST$Wzi5^Dl>n_Y07c|!|##+wp zY>QmXvENpyA16~cTdAX@V3TD<9Xwg`4OUe-g2OD?rn=|EaRK#hpt4EAJA_mgHxlYH zl(c!>W8OrS)*yV+!XN20Mh3x2_8^v@Vh!RUm7c!{mQbg8j&zsb)9v2{*2koh#dmdx z9*E7Wbq}7QUu)|Fl*`?P)mCILy&``UeH@`eHP2z)_=MF5#{PK<^4HWNjG2wESc~u} z_C$F33dkErS^az6>O8L4xA7Diq?qgJ7bEzq`2D<7ZKvrs5-oH+Y3_=NfqaqCi&DFZS8+k9xF!Bqs*;^sd4nbC^w>& z_=@G0#)fo3#iWxgOXJ7Wi>0YaazCyK9#>g+;3Bo&Dlh52=esbx-!1Iuvi_tV3=Zz@ zhBDx?b+^-Jn4-le>dBBB@Z);SJ#1bQ+!8-8!nSD&oPpogjLeD??zyzzvG~sA{f@=H z99QZ{Q$|~7ZMC*t};Tz2m^4X3(c zM9APaI*k*_V}37NV7>cjmy4$^g#f{QDd&C;Tq&szMPcNOujo>xwk8K|{2+b@nRfzu zYt!#EM{?`#H?Sj>=c;a6(i zNYAwT14pEn>tZo}H{miMFtjd)f{pVYadDz%6@=^6uM`D_!ag!Xn?V!(KgB(Xz94HH zF_Ryo6XCXaqqnnBt@lS4j^kVnoaQr*OI$1GGV{t+XJ=ephI~eAwb2%+#_Kp~eDPIe zEcED&Ig^S4gT@b@y$Be@U(h_WtJt)GP*X z^dACk(fgMmu@XI74J1wPU5SgW3|f5ynSC-IPsYL}SSS>aFP$`a(E?q2$ypqo^m25$ zY2}PgTFkJ0uACH{2c^Tg5ymv%EjZ^DuMiGq-twWr2hcs#R^JOyQb?M{3!bGzaD=?r-j2WT#wXPil))3PNkc22_a7o(RAJ6i=%p$=4Sgk&Tck& zb`7|MB#)xJ-WKF;%_XEps9Nv}dP<1*-x5TUJ zLom=M@hq-C%*7A-B%Z)PNW7v?;%zviT`?9B^IToGHq>DPE4(>UfX0Fh;q#b zKs9}JdjG5j8$3g>W(b!knmZ{8T}fL88US8=XQa%XZQ8W|Spb}i6r2x2|C?EZWC3-n zd&<#z`qIUzo}Q|P$63Bp1T$lRA-|lZj?Kd}L|CKPwRdnAU<8$d3&>C?H%WdeaDGR$Q=JJ(J0jLe!R7Jc<=WdVRbT8GoJ%pjS7|`qq_cJ|4}`S9{k;xl##4}%ijc1cryRX07d-%x>K+yLuuHY-?5^Q?LCnI^EnW->MBL;H3~ z%tEAf7P{Y{sZWJCR8_y;EmPg8Uer{-X1*qyS6XWi(OMb|xWz664hjZ-B1tCh*z@ng`3dT#8?7}W=Ac#m%6f{V&YDGu@ zxkzwB&E{d%T3hW^>ZR4z*Gp@W;w>9;BOoMrA%a!JTA#3}2nrz}`~RMKo@cXMY~T0u z{@%~uk7VbW=R7lK&di)SbLN~gg$q;lN2J!WqLRYuW!cVH5%me1G+Bp5>%=uM$44pd zn!`SESFG7rSR*&jn1$gJ8w*evL7nX(eyZ=x25DHXySh9ZTQ2ynn|e+=u95`V^f}4O-m934fzTwb`oqM)N8ER8cT|$A=p1WpT>9Q~-O9?!O1Fz^zF*vEgb(Yf zneoSxTdS`dIoEIB?;~jYvc|DBf!y1@u6I2(p4{76(*0%IYOd=ySC>l)qLaKefh&{T zMtGc>aY?}O9;ljrS43(1+oM@Q%eh3);jM|dYua?tjz@deoT*P17K?9VhP&pvtKlne z>(`JY)S_R+oQHmi3o!5#f9S?EZ)gIMql&U+1}1s}2lp0YUb=?12eb}}R&f|DkPy=rH8am?XAj7=b>B7Qyey!w_%DphX*%zaVXr_kjP z`^e87FTP^9vCFm3&+=B{_>2(5?+TO|Iq*=mrzkrZup3dd+}c+j?R90P>w#g4t_Kqo zar2TAP;$%BS|0p4N8iKxS#1ACMG1I^k{%WW41A;r>0LPo7$JK5ZLl!QQD3IONWWIh zm0DA6cCPRJ2J~0WmJv=Vm3#&P3lnr7G8at=0O5|J*8t;IA!(EcIiVC5&snu|@vT0s zq?AcIOJ4!M2j!Q5V_y!x#^$Gi3~4L@BFQL}<3(xQiQ_;q!6P& z$2d+znL6B!(+8g*=Lr7?NqwF&Krg=#*HU3YjKl`@f*o9iq6~5j^6ne8BJUb8F}m@5 zVuO;H1Pe=&7rH8LEc8!P?8Q>NuiPsG!Cxjv8e$FvVYU*GUfUlYckDSR5DSlsu>oBr zN7eH@SQ?5CWVPH+gr|A+3;deKtjgD9E*>P2Pwc?Xf+-MapLxet%ki5!no(i|2ng2o zmPDblwkI))1Tq!O6J9twH_yhj%wb3Kzz7bfZiN!uR~5W!+fcDsp!2yzupi)<&lhbWmJ|%XGyWefAEy=J;xk%QV zq(EDJb`-d8>$WqpWqK?lVq7v(lP_SdI0auWALV%QtCdG8`F8n51Vxg)wcVI~a?sqA zl`Zx)nXwHVH`~9$e%V#fxNK`QIku_ho#<@7zt$=%pgpb7?=J6LqddR;T`6jrDykwq zwjo~5c66y&OR@mcQmdH~ZO>>`%{x@>J=TJLQJ*NA`knXPb9*Y~tAI7qa_TJ*Vc%%6b{{32ScR zdBaJ(rSjST5pT)l2>L(smOIQ{j>TJ|Z~f1BOZ1P&A!YTS)+PLIA5+;)bZucJir+1l zlUa+m^gAG$5aBIKyvf1i-QX?T_4m}y(cmq&ynZU)QUspx<26D*)50^ZBN#!nB!W_P z&Ac{^RPTm8brHwpAA{ohwWW+!~W?Rzy631_TT(|!=C9q31d~u@3^#Tdu623dZN-{t;E-@ zo?x#oV(-P;q5>4Z#|c&0UW84zd5nHa%RzUb?fo)M5=1f0SuG1Cf5v`3$I z)2wjHHDXhZZoI5XO!r(7f8?`dANOE|Q&t4D+gc}vNA~hPPQEX+d>3jfZA-AjUY->^ zoK)_lKkQf`diTknz0qu*i=^`=Kv9*eUKj7h3{Urki(4gE*LyR&YP_v}`#*^I&rxTM zx2>o;<$@Y7w<`3g@xH^gI#**v>I>erE2-k)fVRAl@7s;wXHX|}(=I>zQFrW2Z8_ZV zwo=8@ug4_)V8Qm~=W?ryPlBr1H`ln2UEz*Zq+F3y-Y3?`CE>A1!S-bx+}cfyzv4rl zf`iM4z6CLC+D90iyImi_>Iyz~O!~OkUXK@7k+2W@0l=1hL`~|m<#P)TEk7HFI;_d5 zVN6ZGoKcw-y+D?-4=p=TjKxn`W1ygOd4UhSwU02`qTpiJSHUAI?n`@Z1+{s!=(w7c z3z<)F)+a?skV|h46l1_t(79~0YSi*V;_W$BpU?V9zXa^N6fqpD_-I0tW7SG|T3AH6vq)=w7f< zZ#e2qt<4)?<2R$7-#H>w5VAv!hjnf~ZaA9h5x7iL{tcar7$odz5C*mZtvJ={+)BXo ziSK<&TPM-hM^%R0SQI-mpZFfyR#y|sPl5w$^}(yY`zc}rQVX)`X2*-0d}SN`_*gPf zL_L(lD7g)y5uNkcvIbeKAA8mGbGC#kX}zdN$FEn6PegTVx63hgoHrQp4TOM-qjRsD zrei|`rwRKWcWYlOHhgfquwi3kW-w>gyjof#K}V20*>VUo9U-FVD1A1=SJZY=AmS#h z=8i=5WrCdw%tUyTQMbl*GW!y$KCG%;^N19mC9}E?SHns}xA?;3!U6+gV~z z0WQ0S^DwE^eUzAt1@6veSq5)bO;mTyiXq?#f0_SiP0z^iw4l9{Yd?CqWA3BDg0$uM z;c>$eK2E~=sVl#hD@5$IxL_r<9d`Grl^|zdFlX{>i_2OAG7mN~5ANe)q}qV1#lNyM znWip3V?wxJc1>^hsPxQ=-mzN3Llzg*E&GJ;9BU`zc`II5cG_DVYm@Bo>GvRv zEnnSdlxmlsT`9&>rtx%^@zldE_p2IX&MAJaM$FYyEF|-M!Q0j`Yd_(fC)pM#+au>@ zKh0wA=505kb92RLn$4z6_+aeo=ym;aB{UVULz#B8F(qwr(mh8N9fgceHTR0w>8B+C zaXVcpyym4)1^<`w$<2JC&j3Q3ifY1JDh}3LdKJG!DC5vn_5sZTtry6^mUY0(DVI9G z?$md_>%@G=`yF<%q6?~oA<~3q_9fd9VVk__mJ#lHgks~9jf;c4`y^hXQ1TO}Sma}t zZ|y{yMRA&Hmmespo-&Q6vy7)6_Q?6MYv5Vok&S+BU?5bnOBq0DMMq`g=N}A|?V?|2 zYRlKT!w=Xhg^RPs?)Pa^*|iq4p-eg8bJh6@BKPI_wDbeG5P4lqIK%3@)x;5qsf7hi z%X)K6B(Nbov~a5^_-0vsK&#jlTE33u1(ov7^7DdAk2)&`_`*|=I|>;Gax%5KGLt#q zqp9#HokXgy(NT=;-gJq*QM#nB+qf4O(R#UJ{G6^%ZI#aRh5AMKI%(cfUvPP|%~ACS zW*#s1QFXfzO^EovB%C&~QB3f#3><5aY$tcgLNX86VirQPBxnW^{aX4*DA@h3T7N

    5zvVTm-R{MQt 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̀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 -z4)o=(YzIEbl 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

    1)cBCt+e_o-Q0KyCF}n< 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 z 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⁣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 _!*Q(Y4SiqI(NW>d} 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œw$IpzPNX*y6VE95| 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 %3j;iR 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%0D}wh1f{Qx=Hyz(zdO&J+v?2NvKE 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�Y1oW0=QCt>C;%&6A=z)5X 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

    w}Ky2h~eQleCzGaC9Sk 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¬zL`;YG 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%0DNO zCw%m4g*>db#xg8R--WVF%bBW1A2P(TM$J4eLlh}fVUn=?m^HVSBUU9S%a;soH9WZf z2+G3n;0}S_l;u02;8}VOdr}BWVh-y;!^k$yQwaJ++Hm;(E^LWN{$z~!ZUzMdC1N^O zNua_*nw0QKs1p8#=Y zw+T)7zM=^yB|8I#BAR_nqi#M1@((ojh5Wys{mxQ9G>=Coq<&T1qrK^lrJdg*^;?6~ zPfpS*sozkDpR^VADiQiw5c+vprQ#QtH{1l4&kEmsusc?TFbCyuE#8@62%CYjaX>^y za=zxqwM-m~8bqX|q=DGa5PJ(ONV25Uz!G&V{m7B8<$SX+kZqz`Hn6DHq=Z@ZsM@72 zNr~?5tgE6@xQ9e{b=H|c+R8ynsm<|XF#3IbP$aD!j(Hc1;7$~2(cB_sJI3*1dvt^Z zx5p~KFLsb@rrR!9CD`tGk)t(Rm!cotKWEb5swqoSPbu<6Qz}1q3~F;MIT_`?B7bWn zkRj5YHsmFdr8twaIrLlO$N6W(&&&1am_Fy6PH_vK!P&Wgp3!zr}ozaN$R^u2B| zU(weDM62>-wl7mAAVktP4|(1Ub(YV6V!I?-S#qC$5As7gbODE$m9nJi3uWBPJu{&V z`Fc(jkf{kSz!pNQoV@+$bA(#ky%&PN1=4GUjDe&!C2~ZiP5CY>s63=uN|81^=4y^O z4$t4B!0)dQb&W*Z4Es+^Kv;~R+B4+j#w^*$n4PHoRBc}bbcj&CDJd&1WUfF)EGRKF z{LuqKY}LWo-*$hEjvnGY>bBc$KT>gkz7ibF3YVQM5<_@5ci`%nPlUXz?$)~Phi@BX zywdNGGwpk+Xj0OMe2$84=0t)!zl{js@pyG{GI_*pK&Zp7VwKw0P>AjyGUMMg$w^x<%FaWUJ{ldE^*B0#kI@uHjk2?|zqoe(a4dn;&L0U4ZQ^|nzY84x z7_aX;m&~8UdpEzm{5tuG{{Z}r@X{gDBG<;(#DLBvp23yFoa5*3P&ZIF#gD$xDbb6= zmC77EcQPCstj~i-haMNe_1Ksxxec{P_=n-)TMu*uXWrMF{%kmvTIRekY4z4iS}{!;vrUPk9r@ zZi{GO?H~(7uK3*;z9$zBZT$R6oNFRpxQb6Xy(fV7*K>X^OJCdd+wq*?6MDm-D7=QA zD@@#do`qoh=(8f&mOIbWiv2BeDD0d38gCfY$|)8u;aX^pZ+ay>C` zw#j(qes*nTe74lDkh|HZVlcfQ{^=aKbL&=F)?ZHrJxB*>Ep9EMi8vfqgQ~tUK-o z_MHs3_zmoZGT3fwGOHWdhq?W0!#^6Q$p^4H<`VX)T+fBvM%5|2Nnwb0g46Gs?eMRM zvqzN`n=ufN@$9__2`S2Ew;UoO_fRWXYN3x4e(js@Vqcv7t#`5Su2;aG3RlgN5{UYN zX#75Q!HcW4F>~pFMW3}QC|N#!I=<&oofA|(|IQf=8jnG@L@cavzoWbMGIY9(8Ubsu zNZy;AIayVFs5@BS3!f_-=1lG&^iBy(XX9mE_`0*i)F;-J!fm+Rmt1C4i<(e~;oE-M%Vo^i17<#3uAr&FecurSxvb=xP%!yp7>jl)14HEBbtUgTk z&6V~zZoMnRbkI~rn-u2#5d~4z~BRjY7aOA6|X}n@!Pt;Z2GH{TNu8tS_MbD70eG}T{%N(`ISJ#AnM$KLU%?qihE(TY@?U?eL{qJtx=~%iY|6NCR zTl8Gl(#cr;LUHBV{^)=mozTy?Tg+D!UizW2SWMnIF5P1IL?z#NC0b

    %^9ZF=b=) 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


    ep4JS`h= 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

    ghoSo2}I!Zy!oh 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�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 diff --git a/tools/cook.ini b/tools/cook.ini index 833fc2d..0208f36 100644 --- a/tools/cook.ini +++ b/tools/cook.ini @@ -25,9 +25,9 @@ ART=../demos/art/,../engine/art/,../tools/editor/art/ ; comma-separated folder( ; also, once a symbol is found, it is replaced by its value always. ; some predefined symbols: INPUT (input filename), OUTPUT (output filename), PRETTY (clean input filename), PROGRESS (cook progress). -@windows `echo Cooking PROGRESS% PRETTY...` -@linux `echo "Cooking PROGRESS% PRETTY..."` -@osx `echo "Cooking PROGRESS% PRETTY..."` +;@windows `echo Cooking PROGRESS% PRETTY...` +;@linux `echo "Cooking PROGRESS% PRETTY..."` +;@osx `echo "Cooking PROGRESS% PRETTY..."` ; ------------------------------------------------------------------------------ ; groups below are collection of files that we want to cook, and then package. @@ -49,6 +49,7 @@ shader=hlsl,fx,dxil,dxbc,glsl,vert,frag,geom,tese,tesc,comp,vs,fs,gs,ts,cs,spirv script=lua,tl video=mp4,ogv,avi,mkv,wmv,mpg,mpeg tiled=tmx,tsx +atlas=ase,aseprite ;excel=xlsx ; ------------------------------------------------------------------------------ @@ -60,10 +61,10 @@ tiled=tmx,tsx [cook audio-module] TOOLS/mod2wav.EXE INPUT OUTPUT -> wav -TOOLS/ffmpeg.EXE -hide_banner -nostdin -loglevel fatal -y -i INPUT -f ogg -b:a 192k OUTPUT -> ogg ; -stats +TOOLS/ffmpeg.EXE -hide_banner -nostdin -loglevel fatal -y -i INPUT -threads 1 -f ogg -b:a 192k OUTPUT -> ogg ; -stats [cook flac] -TOOLS/ffmpeg.EXE -hide_banner -nostdin -loglevel fatal -y -i INPUT -f ogg -b:a 384k OUTPUT -> ogg ; -stats +TOOLS/ffmpeg.EXE -hide_banner -nostdin -loglevel fatal -y -i INPUT -threads 1 -f ogg -b:a 384k OUTPUT -> ogg ; -stats ; cook midis as wavs here @@ -85,7 +86,7 @@ TOOLS/sfxr2wav.EXE INPUT OUTPUT -> wav ; note that all the recently generated wav files from previous steps are included in here as well (like those from the flac->wav recipe above). [cook audio && !mp3 && !ogg] -TOOLS/ffmpeg.EXE -hide_banner -nostdin -loglevel fatal -y -i INPUT -f wav -acodec adpcm_ms OUTPUT -> wav ; -stats +TOOLS/ffmpeg.EXE -hide_banner -nostdin -loglevel fatal -y -i INPUT -threads 1 -f wav -acodec adpcm_ms OUTPUT -> wav ; -stats ; ------------------------------------------------------------------------------ ; cook all videos that are not mpeg, into mpeg. @@ -97,13 +98,14 @@ TOOLS/ffmpeg.EXE -hide_banner -nostdin -loglevel fatal -y -i INPUT -f wav -acode FLAGS1+=-hide_banner -nostdin -loglevel fatal -y ; -stats FLAGS2+=-qscale:v 4 -y -c:v mpeg1video -c:a mp2 -ac 1 -b:a 128k -ar 44100 -format mpeg ;FLAGS_EXTRA_QUALITY=-vf scale=iw*2:ih*2 -TOOLS/ffmpeg.EXE FLAGS1 -i INPUT FLAGS2 OUTPUT ==0 -> mpg +TOOLS/ffmpeg.EXE FLAGS1 -i INPUT -threads 1 FLAGS2 OUTPUT ==0 -> mpg ; ------------------------------------------------------------------------------ ; let's cook all images into ktx [cook image && !png && !jpg && !hdr] -TOOLS/cuttlefish.EXE -q -i INPUT -o OUTPUT -f R8G8B8A8 -> png +;TOOLS/cuttlefish.EXE -q -i INPUT -o OUTPUT -f R8G8B8A8 -> ktx +TOOLS/PVRTexToolCLI.EXE -noout -m -i INPUT -o OUTPUT -> png [cook texture && tga] TOOLS/cuttlefish.EXE -q -m -i INPUT -o OUTPUT -f BC1_RGB -> ktx @@ -190,6 +192,11 @@ TOOLS/ass2iqe.EXE FLAGS -L -o OUTPUT INPUT 2> NUL -> animlist.txt ;[cook excel] ;TOOLS/xlsx2ini.EXE INPUT OUTPUT -> ini +; ------------------------------------------------------------------------------ +; cook sprites +[cook atlas] +TOOLS/ase2ini.EXE "INPUT" > OUTPUT + ; ------------------------------------------------------------------------------ ; assets that need to be compressed at end of whole pipeline process are specified here. ; by default, no assets are compressed unless explictly listed below. @@ -205,4 +212,4 @@ TOOLS/ass2iqe.EXE FLAGS -L -o OUTPUT INPUT 2> NUL -> animlist.txt [compress] 0|ULZ=texture,image,model,audio,font,text,shader,script -0=video,flac,ogg,wav,mp1,mp3,jpg,png +0=video,flac,ogg,wav,mp1,mp3,jpg,png,atlas,tiled diff --git a/tools/cook.lib b/tools/cook.lib new file mode 100644 index 0000000000000000000000000000000000000000..3df780f30f73a56d5758b6ede733b033c4a0ef4e GIT binary patch literal 1900 zcmb_dO>7cD6#f=0w!|pW9*l_zCXGL_Vv9hl(Pq&$fs_IP8og~PJ1s<)#Rb%x986E% zd-v?wb59<6GJ3KHFUFGxuRWO7_m-IzA}S)BOfIax}QdCh7VNz2UJ&xP}-;fQ9lAfC2Gvz4lCSM$QzvK^~juLx`4=0H7lk-vI9ZO_` zlNRJuM#KxDD*L~R#ulSqyylJ{uij354p7XK6eEv_DK^{NGsP|kED`ZqF>==tx*w^T zTunce3-VsEtp*))x1(vt z$G!Gs2tJn&Dq0`S#8|6)iLdp~LK|ytM}%x0I04@kTLnXLO9e>cdo%EAZFLY2=QI zE~?vdBgh@~y=c6rOOh(t9fNZAkB*AV&)kmWj_Mscbk$KYCFjols2I7k-FS05OkOXL z_wnE`k&rM9^Si@cY3@v)zy3Ai#y5eXUI_($uh)m|f|z;|dc3Fh?|ow2Xmo!JdU!l% F!Cwr1a{2%O literal 0 HcmV?d00001 diff --git a/tools/editor/3rd_lite.h b/tools/editor/3rd_lite.h index bbffabe..22c2a3b 100644 --- a/tools/editor/3rd_lite.h +++ b/tools/editor/3rd_lite.h @@ -1122,6 +1122,7 @@ void lt_init(lua_State *L, void *handle, const char *pathdata, int argc, char ** " SCALE = tonumber(os.getenv(\"LITE_SCALE\")) or SCALE\n" " PATHSEP = package.config:sub(1, 1)\n" " EXEDIR = EXEFILE:match(\"^(.+)[/\\\\].*$\")\n" + " USERDIR = EXEDIR .. 'data/user/'\n" " package.path = EXEDIR .. '/data/?.lua;' .. package.path\n" " package.path = EXEDIR .. '/data/?/init.lua;' .. package.path\n" " core = require('core')\n" diff --git a/tools/editor/3rd_lite_sys.h b/tools/editor/3rd_lite_sys.h index ec51fff..a421e0f 100644 --- a/tools/editor/3rd_lite_sys.h +++ b/tools/editor/3rd_lite_sys.h @@ -88,14 +88,14 @@ void *lt_load_file(const char *filename, int *size) { } const char* lt_button_name(int button) { - if(button == GLFW_MOUSE_BUTTON_1) return "left"; - if(button == GLFW_MOUSE_BUTTON_2) return "middle"; - if(button == GLFW_MOUSE_BUTTON_3) return "right"; + if(button == GLFW_MOUSE_BUTTON_LEFT) return "left"; + if(button == GLFW_MOUSE_BUTTON_RIGHT) return "right"; + if(button == GLFW_MOUSE_BUTTON_MIDDLE) return "middle"; return "?"; } char* lt_key_name(char *dst, int key, int vk, int mods) { - // @todo: ALTGR -> left ctrl + right alt + // @todo: "altgr" -> left ctrl + right alt if( key == GLFW_KEY_UP ) return "up"; if( key == GLFW_KEY_DOWN ) return "down"; diff --git a/tools/editor/art/lite/data/core/commands/doc.lua b/tools/editor/art/lite/data/core/commands/doc.lua index 494901e..be4f3ba 100644 --- a/tools/editor/art/lite/data/core/commands/doc.lua +++ b/tools/editor/art/lite/data/core/commands/doc.lua @@ -24,32 +24,18 @@ local function get_indent_string() end -local function insert_at_start_of_selected_lines(text, skip_empty) - local line1, col1, line2, col2, swap = doc():get_selection(true) - for line = line1, line2 do - local line_text = doc().lines[line] - if (not skip_empty or line_text:find("%S")) then - doc():insert(line, 1, text) +local function doc_multiline_selections(sort) + local iter, state, idx, line1, col1, line2, col2 = doc():get_selections(sort) + return function() + idx, line1, col1, line2, col2 = iter(state, idx) + if idx and line2 > line1 and col2 == 1 then + line2 = line2 - 1 + col2 = #doc().lines[line2] end + return idx, line1, col1, line2, col2 end - doc():set_selection(line1, col1 + #text, line2, col2 + #text, swap) end - -local function remove_from_start_of_selected_lines(text, skip_empty) - local line1, col1, line2, col2, swap = doc():get_selection(true) - for line = line1, line2 do - local line_text = doc().lines[line] - if line_text:sub(1, #text) == text - and (not skip_empty or line_text:find("%S")) - then - doc():remove(line, 1, line, #text + 1) - end - end - doc():set_selection(line1, col1 - #text, line2, col2 - #text, swap) -end - - local function append_line_if_last_line(line) if line >= #doc().lines then doc():insert(line, math.huge, "\n") @@ -62,6 +48,32 @@ local function save(filename) core.log("Saved \"%s\"", doc().filename) end +local function cut_or_copy(delete) + local full_text = "" + for idx, line1, col1, line2, col2 in doc():get_selections() do + if line1 ~= line2 or col1 ~= col2 then + local text = doc():get_text(line1, col1, line2, col2) + if delete then + doc():delete_to_cursor(idx, 0) + end + full_text = full_text == "" and text or (full_text .. "\n" .. text) + doc().cursor_clipboard[idx] = text + else + doc().cursor_clipboard[idx] = "" + end + end + system.set_clipboard(full_text) +end + +local function split_cursor(direction) + local new_cursors = {} + for _, line1, col1 in doc():get_selections() do + if line1 > 1 and line1 < #doc().lines then + table.insert(new_cursors, { line1 + direction, col1 }) + end + end + for i,v in ipairs(new_cursors) do doc():add_selection(v[1], v[2]) end +end local commands = { ["doc:undo"] = function() @@ -73,92 +85,66 @@ local commands = { end, ["doc:cut"] = function() - if doc():has_selection() then - local text = doc():get_text(doc():get_selection()) - system.set_clipboard(text) - doc():delete_to(0) ---< https://github.com/rxi/lite/pull/209/commits/479c58fb3dbaa0467afeffa815dd6e2a425281fa - else - local line = doc():get_selection() - local text = doc().lines[line] - system.set_clipboard(text) - core.line_in_clipboard = text - if line < #doc().lines then - doc():remove(line, 1, line + 1, 1) - else - doc():remove(line - 1, math.huge, line, math.huge) - end - end ---< + cut_or_copy(true) end, ["doc:copy"] = function() ---< https://github.com/rxi/lite/pull/209/commits/479c58fb3dbaa0467afeffa815dd6e2a425281fa - local line1, col1, line2, col2, text = doc():get_selection() - if doc():has_selection() then - text = doc():get_text(line1, col1, line2, col2) - else - text = doc().lines[line1] - core.line_in_clipboard = text - end ---< - system.set_clipboard(text) + cut_or_copy(false) end, ["doc:paste"] = function() ---< https://github.com/rxi/lite/pull/209/commits/479c58fb3dbaa0467afeffa815dd6e2a425281fa - local clipboard = system.get_clipboard():gsub("\r", "") - if core.line_in_clipboard == clipboard then - local line, col = doc():get_selection() - doc():insert(line, 1, clipboard) - doc():set_selection(line+1, col) - else - doc():text_input(clipboard) + for idx, line1, col1, line2, col2 in doc():get_selections() do + local value = doc().cursor_clipboard[idx] or system.get_clipboard() + doc():text_input(value:gsub("\r", ""), idx) end ---< end, ["doc:newline"] = function() - local line, col = doc():get_selection() - local indent = doc().lines[line]:match("^[\t ]*") - if col <= #indent then - indent = indent:sub(#indent + 2 - col) + for idx, line, col in doc():get_selections(false, true) do + local indent = doc().lines[line]:match("^[\t ]*") + if col <= #indent then + indent = indent:sub(#indent + 2 - col) + end + doc():text_input("\n" .. indent, idx) end - doc():text_input("\n" .. indent) end, ["doc:newline-below"] = function() - local line = doc():get_selection() - local indent = doc().lines[line]:match("^[\t ]*") - doc():insert(line, math.huge, "\n" .. indent) - doc():set_selection(line + 1, math.huge) + for idx, line in doc():get_selections(false, true) do + local indent = doc().lines[line]:match("^[\t ]*") + doc():insert(line, math.huge, "\n" .. indent) + doc():set_selections(idx, line + 1, math.huge) + end end, ["doc:newline-above"] = function() - local line = doc():get_selection() - local indent = doc().lines[line]:match("^[\t ]*") - doc():insert(line, 1, indent .. "\n") - doc():set_selection(line, math.huge) + for idx, line in doc():get_selections(false, true) do + local indent = doc().lines[line]:match("^[\t ]*") + doc():insert(line, 1, indent .. "\n") + doc():set_selections(idx, line, math.huge) + end end, ["doc:delete"] = function() - local line, col = doc():get_selection() - if not doc():has_selection() and doc().lines[line]:find("^%s*$", col) then - doc():remove(line, col, line, math.huge) + for idx, line1, col1, line2, col2 in doc():get_selections() do + if line1 == line2 and col1 == col2 and doc().lines[line1]:find("^%s*$", col1) then + doc():remove(line1, col1, line1, math.huge) + end + doc():delete_to_cursor(idx, translate.next_char) end - doc():delete_to(translate.next_char) end, ["doc:backspace"] = function() - local line, col = doc():get_selection() - if not doc():has_selection() then - local text = doc():get_text(line, 1, line, col) - if #text >= config.indent_size and text:find("^ *$") then - doc():delete_to(0, -config.indent_size) - return + for idx, line1, col1, line2, col2 in doc():get_selections() do + if line1 == line2 and col1 == col2 then + local text = doc():get_text(line1, 1, line1, col1) + if #text >= config.indent_size and text:find("^ *$") then + doc():delete_to_cursor(idx, 0, -config.indent_size) + return + end end + doc():delete_to_cursor(idx, translate.previous_char) end - doc():delete_to(translate.previous_char) end, ["doc:select-all"] = function() @@ -169,102 +155,136 @@ local commands = { local line, col = doc():get_selection() doc():set_selection(line, col) end, + + + ["doc:indent"] = function() + for idx, line1, col1, line2, col2 in doc_multiline_selections(true) do + local l1, c1, l2, c2 = doc():indent_text(false, line1, col1, line2, col2) + if l1 then + doc():set_selections(idx, l1, c1, l2, c2) + end + end + end, ["doc:select-lines"] = function() - local line1, _, line2, _, swap = doc():get_selection(true) - append_line_if_last_line(line2) - doc():set_selection(line1, 1, line2 + 1, 1, swap) + for idx, line1, _, line2 in doc():get_selections(true) do + append_line_if_last_line(line2) + doc():set_selections(idx, line1, 1, line2 + 1, 1, swap) + end end, ["doc:select-word"] = function() - local line1, col1 = doc():get_selection(true) - local line1, col1 = translate.start_of_word(doc(), line1, col1) - local line2, col2 = translate.end_of_word(doc(), line1, col1) - doc():set_selection(line2, col2, line1, col1) + for idx, line1, col1 in doc():get_selections(true) do + local line1, col1 = translate.start_of_word(doc(), line1, col1) + local line2, col2 = translate.end_of_word(doc(), line1, col1) + doc():set_selections(idx, line2, col2, line1, col1) + end end, ["doc:join-lines"] = function() - local line1, _, line2 = doc():get_selection(true) - if line1 == line2 then line2 = line2 + 1 end - local text = doc():get_text(line1, 1, line2, math.huge) ---< https://github.com/rxi/lite/pull/209/commits/479c58fb3dbaa0467afeffa815dd6e2a425281fa - text = text:gsub("\n[\t ]*", " ") ---< - doc():insert(line1, 1, text) - doc():remove(line1, #text + 1, line2, math.huge) - if doc():has_selection() then - doc():set_selection(line1, math.huge) + for idx, line1, col1, line2, col2 in doc():get_selections(true) do + if line1 == line2 then line2 = line2 + 1 end + local text = doc():get_text(line1, 1, line2, math.huge) + text = text:gsub("(.-)\n[\t ]*", function(x) + return x:find("^%s*$") and x or x .. " " + end) + doc():insert(line1, 1, text) + doc():remove(line1, #text + 1, line2, math.huge) + if line1 ~= line2 or col1 ~= col2 then + doc():set_selections(idx, line1, math.huge) + end end end, ["doc:indent"] = function() - local text = get_indent_string() - if doc():has_selection() then - insert_at_start_of_selected_lines(text) - else - doc():text_input(text) + for idx, line1, col1, line2, col2 in doc_multiline_selections(true) do + local l1, c1, l2, c2 = doc():indent_text(false, line1, col1, line2, col2) + if l1 then + doc():set_selections(idx, l1, c1, l2, c2) + end end end, ["doc:unindent"] = function() - local text = get_indent_string() - remove_from_start_of_selected_lines(text) + for idx, line1, col1, line2, col2 in doc_multiline_selections(true) do + local l1, c1, l2, c2 = doc():indent_text(true, line1, col1, line2, col2) + if l1 then + doc():set_selections(idx, l1, c1, l2, c2) + end + end end, ["doc:duplicate-lines"] = function() - local line1, col1, line2, col2, swap = doc():get_selection(true) - append_line_if_last_line(line2) - local text = doc():get_text(line1, 1, line2 + 1, 1) - doc():insert(line2 + 1, 1, text) - local n = line2 - line1 + 1 - doc():set_selection(line1 + n, col1, line2 + n, col2, swap) + for idx, line1, col1, line2, col2 in doc_multiline_selections(true) do + append_line_if_last_line(line2) + local text = doc():get_text(line1, 1, line2 + 1, 1) + doc():insert(line2 + 1, 1, text) + local n = line2 - line1 + 1 + doc():set_selections(idx, line1 + n, col1, line2 + n, col2, swap) + end end, ["doc:delete-lines"] = function() - local line1, col1, line2 = doc():get_selection(true) - append_line_if_last_line(line2) - doc():remove(line1, 1, line2 + 1, 1) - doc():set_selection(line1, col1) + for idx, line1, col1, line2, col2 in doc_multiline_selections(true) do + append_line_if_last_line(line2) + doc():remove(line1, 1, line2 + 1, 1) + doc():set_selections(idx, line1, col1) + end end, ["doc:move-lines-up"] = function() - local line1, col1, line2, col2, swap = doc():get_selection(true) - append_line_if_last_line(line2) - if line1 > 1 then - local text = doc().lines[line1 - 1] - doc():insert(line2 + 1, 1, text) - doc():remove(line1 - 1, 1, line1, 1) - doc():set_selection(line1 - 1, col1, line2 - 1, col2, swap) + for idx, line1, col1, line2, col2 in doc_multiline_selections(true) do + append_line_if_last_line(line2) + if line1 > 1 then + local text = doc().lines[line1 - 1] + doc():insert(line2 + 1, 1, text) + doc():remove(line1 - 1, 1, line1, 1) + doc():set_selections(idx, line1 - 1, col1, line2 - 1, col2) + end end end, ["doc:move-lines-down"] = function() - local line1, col1, line2, col2, swap = doc():get_selection(true) - append_line_if_last_line(line2 + 1) - if line2 < #doc().lines then - local text = doc().lines[line2 + 1] - doc():remove(line2 + 1, 1, line2 + 2, 1) - doc():insert(line1, 1, text) - doc():set_selection(line1 + 1, col1, line2 + 1, col2, swap) + for idx, line1, col1, line2, col2 in doc_multiline_selections(true) do + append_line_if_last_line(line2 + 1) + if line2 < #doc().lines then + local text = doc().lines[line2 + 1] + doc():remove(line2 + 1, 1, line2 + 2, 1) + doc():insert(line1, 1, text) + doc():set_selections(idx, line1 + 1, col1, line2 + 1, col2) + end end end, ["doc:toggle-line-comments"] = function() local comment = doc().syntax.comment if not comment then return end + local indentation = get_indent_string() local comment_text = comment .. " " - local line1, _, line2 = doc():get_selection(true) - local uncomment = true - for line = line1, line2 do - local text = doc().lines[line] - if text:find("%S") and text:find(comment_text, 1, true) ~= 1 then - uncomment = false + for idx, line1, _, line2 in doc_multiline_selections(true) do + local uncomment = true + local start_offset = math.huge + for line = line1, line2 do + local text = doc().lines[line] + local s = text:find("%S") + local cs, ce = text:find(comment_text, s, true) + if s and cs ~= s then + uncomment = false + start_offset = math.min(start_offset, s) + end + end + for line = line1, line2 do + local text = doc().lines[line] + local s = text:find("%S") + if uncomment then + local cs, ce = text:find(comment_text, s, true) + if ce then + doc():remove(line, cs, line, ce + 1) + end + elseif s then + doc():insert(line, start_offset, comment_text) + end end - end - if uncomment then - remove_from_start_of_selected_lines(comment_text, true) - else - insert_at_start_of_selected_lines(comment_text, true) end end, @@ -343,6 +363,17 @@ local commands = { end end, common.path_suggest) end, + + ["doc:create-cursor-previous-line"] = function() + split_cursor(-1) + doc():merge_cursors() + end, + + ["doc:create-cursor-next-line"] = function() + split_cursor(1) + doc():merge_cursors() + end + } @@ -372,21 +403,21 @@ for name, fn in pairs(translations) do end commands["doc:move-to-previous-char"] = function() - if doc():has_selection() then - local line, col = doc():get_selection(true) - doc():set_selection(line, col) - else - doc():move_to(translate.previous_char) + for idx, line1, col1, line2, col2 in doc():get_selections(true) do + if line1 ~= line2 or col1 ~= col2 then + doc():set_selections(idx, line1, col1) + end end + doc():move_to(translate.previous_char) end commands["doc:move-to-next-char"] = function() - if doc():has_selection() then - local _, _, line, col = doc():get_selection(true) - doc():set_selection(line, col) - else - doc():move_to(translate.next_char) + for idx, line1, col1, line2, col2 in doc():get_selections(true) do + if line1 ~= line2 or col1 ~= col2 then + doc():set_selections(idx, line2, col2) + end end + doc():move_to(translate.next_char) end command.add("core.docview", commands) diff --git a/tools/editor/art/lite/data/core/commands/findreplace.lua b/tools/editor/art/lite/data/core/commands/findreplace.lua index 937c410..fd116a5 100644 --- a/tools/editor/art/lite/data/core/commands/findreplace.lua +++ b/tools/editor/art/lite/data/core/commands/findreplace.lua @@ -90,13 +90,84 @@ local function has_selection() and core.active_view.doc:has_selection() end -command.add(has_selection, { - ["find-replace:select-next"] = function() - local l1, c1, l2, c2 = doc():get_selection(true) - local text = doc():get_text(l1, c1, l2, c2) - local l1, c1, l2, c2 = search.find(doc(), l2, c2, text, { wrap = true }) - if l2 then doc():set_selection(l2, c2, l1, c1) end +local function has_unique_selection() + if not doc() then return false end + local text = nil + for idx, line1, col1, line2, col2 in doc():get_selections(true, true) do + if line1 == line2 and col1 == col2 then return false end + local selection = doc():get_text(line1, col1, line2, col2) + if text ~= nil and text ~= selection then return false end + text = selection end + return text ~= nil +end + +local function is_in_selection(line, col, l1, c1, l2, c2) + if line < l1 or line > l2 then return false end + if line == l1 and col <= c1 then return false end + if line == l2 and col > c2 then return false end + return true +end + +local function is_in_any_selection(line, col) + for idx, l1, c1, l2, c2 in doc():get_selections(true, false) do + if is_in_selection(line, col, l1, c1, l2, c2) then return true end + end + return false +end + +local function select_add_next(all) + local il1, ic1 = doc():get_selection(true) + for idx, l1, c1, l2, c2 in doc():get_selections(true, true) do + local text = doc():get_text(l1, c1, l2, c2) + repeat + l1, c1, l2, c2 = search.find(doc(), l2, c2, text, { wrap = true }) + if l1 == il1 and c1 == ic1 then break end + if l2 and (all or not is_in_any_selection(l2, c2)) then + doc():add_selection(l2, c2, l1, c1) + if not all then + core.active_view:scroll_to_make_visible(l2, c2) + return + end + end + until not all or not l2 + if all then break end + end +end + +local function select_next(reverse) + local l1, c1, l2, c2 = doc():get_selection(true) + local text = doc():get_text(l1, c1, l2, c2) + if reverse then + l1, c1, l2, c2 = search.find(doc(), l1, c1, text, { wrap = true, reverse = true }) + else + l1, c1, l2, c2 = search.find(doc(), l2, c2, text, { wrap = true }) + end + if l2 then doc():set_selection(l2, c2, l1, c1) end +end + +---@param in_selection? boolean whether to replace in the selections only, or in the whole file. +local function find_replace(in_selection) + local l1, c1, l2, c2 = doc():get_selection() + local selected_text = "" + if not in_selection then + selected_text = doc():get_text(l1, c1, l2, c2) + doc():set_selection(l2, c2, l2, c2) + end + replace("Text", l1 == l2 and selected_text or "", function(text, old, new) + if not find_regex then + return text:gsub(old:gsub("%W", "%%%1"), new:gsub("%%", "%%%%"), nil) + end + local result, matches = regex.gsub(regex.compile(old, "m"), text, new) + return result, matches + end) +end + +command.add(has_unique_selection, { + ["find-replace:select-next"] = select_next, + ["find-replace:select-previous"] = function() select_next(true) end, + ["find-replace:select-add-next"] = select_add_next, + ["find-replace:select-add-all"] = function() select_add_next(true) end }) command.add("core.docview", { diff --git a/tools/editor/art/lite/data/core/common.lua b/tools/editor/art/lite/data/core/common.lua index 80fe6a4..45549ae 100644 --- a/tools/editor/art/lite/data/core/common.lua +++ b/tools/editor/art/lite/data/core/common.lua @@ -1,5 +1,9 @@ local common = {} +function common.copy_position_and_size(dst, src) + dst.position.x, dst.position.y = src.position.x, src.position.y + dst.size.x, dst.size.y = src.size.x, src.size.y +end function common.is_utf8_cont(char) local byte = char:byte() @@ -29,6 +33,13 @@ function common.round(n) end +function common.find_index(tbl, prop) + for i, o in ipairs(tbl) do + if o[prop] then return i end + end +end + + function common.lerp(a, b, t) if type(a) ~= "table" then return a + (b - a) * t @@ -61,6 +72,26 @@ function common.color(str) end +function common.splice(t, at, remove, insert) + insert = insert or {} + local offset = #insert - remove + local old_len = #t + if offset < 0 then + for i = at - offset, old_len - offset do + t[i + offset] = t[i] + end + elseif offset > 0 then + for i = old_len, at, -1 do + t[i + offset] = t[i] + end + end + for i, item in ipairs(insert) do + t[at + i - 1] = item + end +end + + + local function compare_score(a, b) return a.score > b.score end @@ -144,4 +175,17 @@ function common.bench(name, fn, ...) end +function common.serialize(val) + if type(val) == "string" then + return string.format("%q", val) + elseif type(val) == "table" then + local t = {} + for k, v in pairs(val) do + table.insert(t, "[" .. common.serialize(k) .. "]=" .. common.serialize(v)) + end + return "{" .. table.concat(t, ",") .. "}" + end + return tostring(val) +end + return common diff --git a/tools/editor/art/lite/data/core/config.lua b/tools/editor/art/lite/data/core/config.lua index 098a869..78da44c 100644 --- a/tools/editor/art/lite/data/core/config.lua +++ b/tools/editor/art/lite/data/core/config.lua @@ -1,9 +1,8 @@ local config = {} -config.project_scan_rate = 5000 --< @r-lyeh: 5 -> 5000: from 5ms to 5s config.fps = 60 config.max_log_items = 80 -config.message_timeout = 3 +config.message_timeout = 6 --< @r-lyeh 3>6 config.mouse_wheel_scroll = 50 * SCALE config.file_size_limit = 10 config.ignore_files = "^%." @@ -16,7 +15,8 @@ config.line_height = 1.2 config.indent_size = 2 config.tab_type = "soft" config.line_limit = 80 -config.project_scan_depth = 5 +config.project_scan_rate = 5 -- seconds to wait before running next full tree globber +config.project_scan_depth = 8 -- max folder depth tree config.project_max_files_per_folder = 2000 config.blink_period = 1.3 --< https://github.com/rxi/lite/issues/235 config.tabs_allowed = true --< https://github.com/rxi/lite/issues/191 diff --git a/tools/editor/art/lite/data/core/doc/init.lua b/tools/editor/art/lite/data/core/doc/init.lua index 83b5fc0..02eea8a 100644 --- a/tools/editor/art/lite/data/core/doc/init.lua +++ b/tools/editor/art/lite/data/core/doc/init.lua @@ -7,6 +7,7 @@ local common = require "core.common" local Doc = Object:extend() +local unpack = table.unpack local function split_lines(text) local res = {} @@ -16,26 +17,6 @@ local function split_lines(text) return res end - -local function splice(t, at, remove, insert) - insert = insert or {} - local offset = #insert - remove - local old_len = #t - if offset < 0 then - for i = at - offset, old_len - offset do - t[i + offset] = t[i] - end - elseif offset > 0 then - for i = old_len, at, -1 do - t[i + offset] = t[i] - end - end - for i, item in ipairs(insert) do - t[at + i - 1] = item - end -end - - function Doc:new(filename) self:reset() if filename then @@ -46,7 +27,8 @@ end function Doc:reset() self.lines = { "\n" } - self.selection = { a = { line=1, col=1 }, b = { line=1, col=1 } } + self.selections = { 1, 1, 1, 1 } + self.cursor_clipboard = {} self.undo_stack = { idx = 1 } self.redo_stack = { idx = 1 } self.clean_change_id = 1 @@ -65,10 +47,16 @@ function Doc:reset_syntax() end +function Doc:set_filename(filename) + self.filename = filename + self.abs_filename = system.absolute_path(filename) +end + + function Doc:load(filename) local fp = assert( io.open(filename, "rb") ) self:reset() - self.filename = filename + self:set_filename(filename) self.lines = {} for line in fp:lines() do if line:byte(-1) == 13 then @@ -93,7 +81,9 @@ function Doc:save(filename) fp:write(line) end fp:close() - self.filename = filename or self.filename + if filename then + self:set_filename(filename) + end self:reset_syntax() self:clean() end @@ -118,45 +108,96 @@ function Doc:get_change_id() return self.undo_stack.idx end +-- Cursor section. Cursor indices are *only* valid during a get_selections() call. +-- Cursors will always be iterated in order from top to bottom. Through normal operation +-- curors can never swap positions; only merge or split, or change their position in cursor +-- order. +function Doc:get_selection(sort) + local idx, line1, col1, line2, col2 = self:get_selections(sort)({ self.selections, sort }, 0) + return line1, col1, line2, col2, sort +end -function Doc:set_selection(line1, col1, line2, col2, swap) - assert(not line2 == not col2, "expected 2 or 4 arguments") +function Doc:get_selection_idx(idx, sort) + local line1, col1, line2, col2 = self.selections[idx*4-3], self.selections[idx*4-2], self.selections[idx*4-1], self.selections[idx*4] + if line1 and sort then + return sort_positions(line1, col1, line2, col2) + else + return line1, col1, line2, col2 + end +end + +function Doc:has_selection() + local line1, col1, line2, col2 = self:get_selection(false) + return line1 ~= line2 or col1 ~= col2 +end + +function Doc:sanitize_selection() + for idx, line1, col1, line2, col2 in self:get_selections() do + self:set_selections(idx, line1, col1, line2, col2) + end +end + +local function sort_positions(line1, col1, line2, col2) + if line1 > line2 or line1 == line2 and col1 > col2 then + return line2, col2, line1, col1 + end + return line1, col1, line2, col2 +end + +function Doc:set_selections(idx, line1, col1, line2, col2, swap, rm) + assert(not line2 == not col2, "expected 3 or 5 arguments") if swap then line1, col1, line2, col2 = line2, col2, line1, col1 end line1, col1 = self:sanitize_position(line1, col1) line2, col2 = self:sanitize_position(line2 or line1, col2 or col1) - self.selection.a.line, self.selection.a.col = line1, col1 - self.selection.b.line, self.selection.b.col = line2, col2 + common.splice(self.selections, (idx - 1)*4 + 1, rm == nil and 4 or rm, { line1, col1, line2, col2 }) end - -local function sort_positions(line1, col1, line2, col2) - if line1 > line2 - or line1 == line2 and col1 > col2 then - return line2, col2, line1, col1, true +function Doc:add_selection(line1, col1, line2, col2, swap) + local l1, c1 = sort_positions(line1, col1, line2 or line1, col2 or col1) + local target = #self.selections / 4 + 1 + for idx, tl1, tc1 in self:get_selections(true) do + if l1 < tl1 or l1 == tl1 and c1 < tc1 then + target = idx + break + end end - return line1, col1, line2, col2, false + self:set_selections(target, line1, col1, line2, col2, swap, 0) end +function Doc:set_selection(line1, col1, line2, col2, swap) + self.selections, self.cursor_clipboard = {}, {} + self:set_selections(1, line1, col1, line2, col2, swap) +end -function Doc:get_selection(sort) - local a, b = self.selection.a, self.selection.b - if sort then - return sort_positions(a.line, a.col, b.line, b.col) +function Doc:merge_cursors(idx) + for i = (idx or (#self.selections - 3)), (idx or 5), -4 do + for j = 1, i - 4, 4 do + if self.selections[i] == self.selections[j] and + self.selections[i+1] == self.selections[j+1] then + common.splice(self.selections, i, 4) + break + end + end end - return a.line, a.col, b.line, b.col end - -function Doc:has_selection() - local a, b = self.selection.a, self.selection.b - return not (a.line == b.line and a.col == b.col) +local function selection_iterator(invariant, idx) + local target = invariant[3] and (idx*4 - 7) or (idx*4 + 1) + if target > #invariant[1] or target <= 0 or (type(invariant[3]) == "number" and invariant[3] ~= idx - 1) then return end + if invariant[2] then + return idx+(invariant[3] and -1 or 1), sort_positions(unpack(invariant[1], target, target+4)) + else + return idx+(invariant[3] and -1 or 1), unpack(invariant[1], target, target+4) + end end - -function Doc:sanitize_selection() - self:set_selection(self:get_selection()) +-- If idx_reverse is true, it'll reverse iterate. If nil, or false, regular iterate. +-- If a number, runs for exactly that iteration. +function Doc:get_selections(sort_intra, idx_reverse) + return selection_iterator, { self.selections, sort_intra, idx_reverse }, + idx_reverse == true and ((#self.selections / 4) + 1) or ((idx_reverse or -1)+1) end - +-- End of cursor seciton. function Doc:sanitize_position(line, col) line = common.clamp(line, 1, #self.lines) @@ -233,7 +274,7 @@ local function push_undo(undo_stack, time, type, ...) end -local function pop_undo(self, undo_stack, redo_stack) +local function pop_undo(self, undo_stack, redo_stack, modified) -- pop command local cmd = undo_stack[undo_stack.idx - 1] if not cmd then return end @@ -243,21 +284,24 @@ local function pop_undo(self, undo_stack, redo_stack) if cmd.type == "insert" then local line, col, text = table.unpack(cmd) self:raw_insert(line, col, text, redo_stack, cmd.time) - elseif cmd.type == "remove" then local line1, col1, line2, col2 = table.unpack(cmd) self:raw_remove(line1, col1, line2, col2, redo_stack, cmd.time) - elseif cmd.type == "selection" then - self.selection.a.line, self.selection.a.col = cmd[1], cmd[2] - self.selection.b.line, self.selection.b.col = cmd[3], cmd[4] + self.selections = { unpack(cmd) } end + modified = modified or (cmd.type ~= "selection") + -- if next undo command is within the merge timeout then treat as a single -- command and continue to execute it local next = undo_stack[undo_stack.idx - 1] if next and math.abs(cmd.time - next.time) < config.undo_merge_timeout then - return pop_undo(self, undo_stack, redo_stack) + return pop_undo(self, undo_stack, redo_stack, modified) + end + + if modified then + self:on_text_change("undo") end end @@ -274,11 +318,11 @@ function Doc:raw_insert(line, col, text, undo_stack, time) lines[#lines] = lines[#lines] .. after -- splice lines into line array - splice(self.lines, line, 1, lines) + common.splice(self.lines, line, 1, lines) -- push undo local line2, col2 = self:position_offset(line, col, #text) - push_undo(undo_stack, time, "selection", self:get_selection()) + push_undo(undo_stack, time, "selection", unpack(self.selections)) push_undo(undo_stack, time, "remove", line, col, line2, col2) -- update highlighter and assure selection is in bounds @@ -290,7 +334,7 @@ end function Doc:raw_remove(line1, col1, line2, col2, undo_stack, time) -- push undo local text = self:get_text(line1, col1, line2, col2) - push_undo(undo_stack, time, "selection", self:get_selection()) + push_undo(undo_stack, time, "selection", unpack(self.selections)) push_undo(undo_stack, time, "insert", line1, col1, text) -- get line content before/after removed text @@ -298,7 +342,7 @@ function Doc:raw_remove(line1, col1, line2, col2, undo_stack, time) local after = self.lines[line2]:sub(col2) -- splice line into line array - splice(self.lines, line1, line2 - line1 + 1, { before .. after }) + common.splice(self.lines, line1, line2 - line1 + 1, { before .. after }) -- update highlighter and assure selection is in bounds self.highlighter:invalidate(line1) @@ -310,6 +354,7 @@ function Doc:insert(line, col, text) self.redo_stack = { idx = 1 } line, col = self:sanitize_position(line, col) self:raw_insert(line, col, text, self.undo_stack, system.get_time()) + self:on_text_change("insert") end @@ -319,35 +364,34 @@ function Doc:remove(line1, col1, line2, col2) line2, col2 = self:sanitize_position(line2, col2) line1, col1, line2, col2 = sort_positions(line1, col1, line2, col2) self:raw_remove(line1, col1, line2, col2, self.undo_stack, system.get_time()) + self:on_text_change("remove") end function Doc:undo() - pop_undo(self, self.undo_stack, self.redo_stack) + pop_undo(self, self.undo_stack, self.redo_stack, false) end function Doc:redo() - pop_undo(self, self.redo_stack, self.undo_stack) + pop_undo(self, self.redo_stack, self.undo_stack, false) end -function Doc:text_input(text) - if self:has_selection() then - self:delete_to() +function Doc:text_input(text, idx) + for sidx, line1, col1, line2, col2 in self:get_selections(true, idx) do + if line1 ~= line2 or col1 ~= col2 then + self:delete_to_cursor(sidx) + end + self:insert(line1, col1, text) + self:move_to_cursor(sidx, #text) end - local line, col = self:get_selection() - self:insert(line, col, text) - self:move_to(#text) end function Doc:replace(fn) - local line1, col1, line2, col2, swap - local had_selection = self:has_selection() - if had_selection then - line1, col1, line2, col2, swap = self:get_selection(true) - else + local line1, col1, line2, col2 = self:get_selection(true) + if line1 == line2 and col1 == col2 then line1, col1, line2, col2 = 1, 1, #self.lines, #self.lines[#self.lines] end local old_text = self:get_text(line1, col1, line2, col2) @@ -355,38 +399,108 @@ function Doc:replace(fn) if old_text ~= new_text then self:insert(line2, col2, new_text) self:remove(line1, col1, line2, col2) - if had_selection then + if line1 == line2 and col1 == col2 then line2, col2 = self:position_offset(line1, col1, #new_text) - self:set_selection(line1, col1, line2, col2, swap) + self:set_selection(line1, col1, line2, col2) end end return n end -function Doc:delete_to(...) - local line, col = self:get_selection(true) - if self:has_selection() then - self:remove(self:get_selection()) - else - local line2, col2 = self:position_offset(line, col, ...) - self:remove(line, col, line2, col2) - line, col = sort_positions(line, col, line2, col2) +function Doc:delete_to_cursor(idx, ...) + for sidx, line1, col1, line2, col2 in self:get_selections(true, idx) do + if line1 ~= line2 or col1 ~= col2 then + self:remove(line1, col1, line2, col2) + else + local l2, c2 = self:position_offset(line1, col1, ...) + self:remove(line1, col1, l2, c2) + line1, col1 = sort_positions(line1, col1, l2, c2) + end + self:set_selections(sidx, line1, col1) end - self:set_selection(line, col) + self:merge_cursors(idx) +end +function Doc:delete_to(...) return self:delete_to_cursor(nil, ...) end + +function Doc:move_to_cursor(idx, ...) + for sidx, line, col in self:get_selections(false, idx) do + self:set_selections(sidx, self:position_offset(line, col, ...)) + end + self:merge_cursors(idx) +end +function Doc:move_to(...) return self:move_to_cursor(nil, ...) end + + +function Doc:select_to_cursor(idx, ...) + for sidx, line, col, line2, col2 in self:get_selections(false, idx) do + line, col = self:position_offset(line, col, ...) + self:set_selections(sidx, line, col, line2, col2) + end + self:merge_cursors(idx) +end +function Doc:select_to(...) return self:select_to_cursor(nil, ...) end + + +local function get_indent_string() + if config.tab_type == "hard" then + return "\t" + end + return string.rep(" ", config.indent_size) end - -function Doc:move_to(...) - local line, col = self:get_selection() - self:set_selection(self:position_offset(line, col, ...)) +-- returns the size of the original indent, and the indent +-- in your config format, rounded either up or down +local function get_line_indent(line, rnd_up) + local _, e = line:find("^[ \t]+") + local soft_tab = string.rep(" ", config.indent_size) + if config.tab_type == "hard" then + local indent = e and line:sub(1, e):gsub(soft_tab, "\t") or "" + return e, indent:gsub(" +", rnd_up and "\t" or "") + else + local indent = e and line:sub(1, e):gsub("\t", soft_tab) or "" + local number = #indent / #soft_tab + return e, indent:sub(1, + (rnd_up and math.ceil(number) or math.floor(number))*#soft_tab) + end end +-- un/indents text; behaviour varies based on selection and un/indent. +-- * if there's a selection, it will stay static around the +-- text for both indenting and unindenting. +-- * if you are in the beginning whitespace of a line, and are indenting, the +-- cursor will insert the exactly appropriate amount of spaces, and jump the +-- cursor to the beginning of first non whitespace characters +-- * if you are not in the beginning whitespace of a line, and you indent, it +-- inserts the appropriate whitespace, as if you typed them normally. +-- * if you are unindenting, the cursor will jump to the start of the line, +-- and remove the appropriate amount of spaces (or a tab). +function Doc:indent_text(unindent, line1, col1, line2, col2) + local text = get_indent_string() + local _, se = self.lines[line1]:find("^[ \t]+") + local in_beginning_whitespace = col1 == 1 or (se and col1 <= se + 1) + local has_selection = line1 ~= line2 or col1 ~= col2 + if unindent or has_selection or in_beginning_whitespace then + local l1d, l2d = #self.lines[line1], #self.lines[line2] + for line = line1, line2 do + local e, rnded = get_line_indent(self.lines[line], unindent) + self:remove(line, 1, line, (e or 0) + 1) + self:insert(line, 1, + unindent and rnded:sub(1, #rnded - #text) or rnded .. text) + end + l1d, l2d = #self.lines[line1] - l1d, #self.lines[line2] - l2d + if (unindent or in_beginning_whitespace) and not has_selection then + local start_cursor = (se and se + 1 or 1) + l1d or #(self.lines[line1]) + return line1, start_cursor, line2, start_cursor + end + return line1, col1 + l1d, line2, col2 + l2d + end + self:insert(line1, col1, text) + return line1, col1 + #text, line1, col1 + #text +end -function Doc:select_to(...) - local line, col, line2, col2 = self:get_selection() - line, col = self:position_offset(line, col, ...) - self:set_selection(line, col, line2, col2) +-- For plugins to add custom actions of document change +function Doc:on_text_change(type) end diff --git a/tools/editor/art/lite/data/core/docview.lua b/tools/editor/art/lite/data/core/docview.lua index 154ff79..1b91ddd 100644 --- a/tools/editor/art/lite/data/core/docview.lua +++ b/tools/editor/art/lite/data/core/docview.lua @@ -56,7 +56,6 @@ function DocView:new(doc) self.doc = assert(doc) self.font = "code_font" self.last_x_offset = {} - self.blink_timer = 0 end @@ -226,10 +225,14 @@ function DocView:on_mouse_pressed(button, x, y, clicks) end else local line, col = self:resolve_screen_position(x, y) - self.doc:set_selection(mouse_selection(self.doc, clicks, line, col, line, col)) + if keymap.modkeys["ctrl"] then + self.doc:add_selection(mouse_selection(self.doc, clicks, line, col, line, col)) + else + self.doc:set_selection(mouse_selection(self.doc, clicks, line, col, line, col)) + end self.mouse_selecting = { line, col, clicks = clicks } end - self.blink_timer = 0 + core.blink_timer = 0 end @@ -246,7 +249,15 @@ function DocView:on_mouse_moved(x, y, ...) local l1, c1 = self:resolve_screen_position(x, y) local l2, c2 = table.unpack(self.mouse_selecting) local clicks = self.mouse_selecting.clicks - self.doc:set_selection(mouse_selection(self.doc, clicks, l1, c1, l2, c2)) + if keymap.modkeys["ctrl"] then + if l1 > l2 then l1, l2 = l2, l1 end + self.doc.selections = { } + for i = l1, l2 do + self.doc:set_selections(i - l1 + 1, i, math.min(c1, #self.doc.lines[i]), i, math.min(c2, #self.doc.lines[i])) + end + else + self.doc:set_selection(mouse_selection(self.doc, clicks, l1, c1, l2, c2)) + end end end @@ -269,18 +280,18 @@ function DocView:update() if core.active_view == self then self:scroll_to_make_visible(line, col) end - self.blink_timer = 0 + core.blink_timer = 0 self.last_line, self.last_col = line, col end -- update blink timer if self == core.active_view and not self.mouse_selecting then - local n = config.blink_period / 2 - local prev = self.blink_timer - self.blink_timer = (self.blink_timer + 1 / config.fps) % config.blink_period - if (self.blink_timer > n) ~= (prev > n) then + local T, t0 = config.blink_period, core.blink_start + local ta, tb = core.blink_timer, system.get_time() + if ((tb - t0) % T < T / 2) ~= ((ta - t0) % T < T / 2) then core.redraw = true end + core.blink_timer = tb end DocView.super.update(self) @@ -304,45 +315,50 @@ end function DocView:draw_line_body(idx, x, y) - local line, col = self.doc:get_selection() - -- draw selection if it overlaps this line - local line1, col1, line2, col2 = self.doc:get_selection(true) - if idx >= line1 and idx <= line2 then - local text = self.doc.lines[idx] - if line1 ~= idx then col1 = 1 end - if line2 ~= idx then col2 = #text + 1 end - local x1 = x + self:get_col_x_offset(idx, col1) - local x2 = x + self:get_col_x_offset(idx, col2) - local lh = self:get_line_height() - renderer.draw_rect(x1, y, x2 - x1, lh, style.selection) + for lidx, line1, col1, line2, col2 in self.doc:get_selections(true) do + if idx >= line1 and idx <= line2 then + local text = self.doc.lines[idx] + if line1 ~= idx then col1 = 1 end + if line2 ~= idx then col2 = #text + 1 end + local x1 = x + self:get_col_x_offset(idx, col1) + local x2 = x + self:get_col_x_offset(idx, col2) + local lh = self:get_line_height() + renderer.draw_rect(x1, y, x2 - x1, lh, style.selection) + end end - - -- draw line highlight if caret is on this line - if config.highlight_current_line and not self.doc:has_selection() - and line == idx and core.active_view == self then - self:draw_line_highlight(x + self.scroll.x, y) + for lidx, line1, col1, line2, col2 in self.doc:get_selections(true) do + -- draw line highlight if caret is on this line + if config.highlight_current_line and (line1 == line2 and col1 == col2) + and line1 == idx and core.active_view == self then + self:draw_line_highlight(x + self.scroll.x, y) + end end - + -- draw line's text self:draw_line_text(idx, x, y) -- draw caret if it overlaps this line - if line == idx and core.active_view == self - and self.blink_timer < config.blink_period / 2 - and system.window_has_focus() then - local lh = self:get_line_height() - local x1 = x + self:get_col_x_offset(line, col) - renderer.draw_rect(x1, y, style.caret_width, lh, style.caret) + local T = config.blink_period + for _, line, col in self.doc:get_selections() do + if line == idx and core.active_view == self + and (core.blink_timer - core.blink_start) % T < T / 2 + and system.window_has_focus() then + local lh = self:get_line_height() + local x1 = x + self:get_col_x_offset(line, col) + renderer.draw_rect(x1, y, style.caret_width, lh, style.caret) + end end end function DocView:draw_line_gutter(idx, x, y) local color = style.line_number - local line1, _, line2, _ = self.doc:get_selection(true) - if idx >= line1 and idx <= line2 then - color = style.line_number2 + for _, line1, _, line2 in self.doc:get_selections(true) do + if idx >= line1 and idx <= line2 then + color = style.line_number2 + break + end end local yoffset = self:get_line_text_y_offset() x = x + style.padding.x diff --git a/tools/editor/art/lite/data/core/init.lua b/tools/editor/art/lite/data/core/init.lua index f1ed391..d48e793 100644 --- a/tools/editor/art/lite/data/core/init.lua +++ b/tools/editor/art/lite/data/core/init.lua @@ -108,6 +108,8 @@ function core.init() core.docs = {} core.threads = setmetatable({}, { __mode = "k" }) core.project_files = {} + core.blink_start = system.get_time() + core.blink_timer = core.blink_start core.redraw = true core.root_view = RootView() @@ -252,6 +254,7 @@ function core.add_thread(f, weak_ref) local key = weak_ref or #core.threads + 1 local fn = function() return core.try(f) end core.threads[key] = { cr = coroutine.create(fn), wake = 0 } + return key end @@ -493,6 +496,10 @@ function core.run() end --< @r-lyeh } split core.run() into core.run1() +function core.blink_reset() + core.blink_start = system.get_time() +end + function core.on_error(err) -- write error to file local fp = io.open(EXEDIR .. "/error.txt", "wb") diff --git a/tools/editor/art/lite/data/core/keymap.lua b/tools/editor/art/lite/data/core/keymap.lua index 4d48ed4..b23d81b 100644 --- a/tools/editor/art/lite/data/core/keymap.lua +++ b/tools/editor/art/lite/data/core/keymap.lua @@ -127,6 +127,8 @@ keymap.add { ["ctrl+x"] = "doc:cut", ["ctrl+c"] = "doc:copy", ["ctrl+v"] = "doc:paste", + ["ctrl+insert"] = "doc:copy", + ["shift+insert"] = "doc:paste", ["escape"] = { "command:escape", "doc:select-none" }, ["tab"] = { "command:complete", "doc:indent" }, ["shift+tab"] = "doc:unindent", @@ -144,7 +146,7 @@ keymap.add { ["ctrl+shift+return"] = "doc:newline-above", ["ctrl+j"] = "doc:join-lines", ["ctrl+a"] = "doc:select-all", - ["ctrl+d"] = { "find-replace:select-next", "doc:select-word" }, + ["ctrl+d"] = { "find-replace:select-add-next", "doc:select-word" }, ["ctrl+l"] = "doc:select-lines", ["ctrl+/"] = "doc:toggle-line-comments", ["ctrl+up"] = "doc:move-lines-up", @@ -181,6 +183,8 @@ keymap.add { ["ctrl+shift+end"] = "doc:select-to-end-of-doc", ["shift+pageup"] = "doc:select-to-previous-page", ["shift+pagedown"] = "doc:select-to-next-page", + ["ctrl+shift+up"] = "doc:create-cursor-previous-line", + ["ctrl+shift+down"] = "doc:create-cursor-next-line" } return keymap diff --git a/tools/editor/art/lite/data/core/node.lua b/tools/editor/art/lite/data/core/node.lua new file mode 100644 index 0000000..818240f --- /dev/null +++ b/tools/editor/art/lite/data/core/node.lua @@ -0,0 +1,375 @@ +local core = require "core" +local common = require "core.common" +local style = require "core.style" +local keymap = require "core.keymap" +local Object = require "core.object" +local View = require "core.view" +local DocView = require "core.docview" +local config = require "core.config" + + +local EmptyView = View:extend() + +local function draw_text(x, y, color) + local th = style.big_font:get_height() + local dh = th + style.padding.y * 2 + x = renderer.draw_text(style.big_font, "edit", x, y + (dh - th) / 2, color) --< @r-lyeh lite>edit + x = x + style.padding.x + renderer.draw_rect(x, y, math.ceil(1 * SCALE), dh, color) + local lines = { + { fmt = "%s to run a command", cmd = "core:find-command" }, + { fmt = "%s to open a file from the project", cmd = "core:find-file" }, + } + th = style.font:get_height() + y = y + (dh - th * 2 - style.padding.y) / 2 + local w = 0 + for _, line in ipairs(lines) do + local text = string.format(line.fmt, keymap.get_binding(line.cmd)) + w = math.max(w, renderer.draw_text(style.font, text, x + style.padding.x, y, color)) + y = y + th + style.padding.y + end + return w, dh +end + +function EmptyView:draw() + self:draw_background(style.background) + local w, h = draw_text(0, 0, { 0, 0, 0, 0 }) + local x = self.position.x + math.max(style.padding.x, (self.size.x - w) / 2) + local y = self.position.y + (self.size.y - h) / 2 + draw_text(x, y, style.dim) +end + + +local Node = Object:extend() + +function Node:new(type) + self.type = type or "leaf" + self.position = { x = 0, y = 0 } + self.size = { x = 0, y = 0 } + self.views = {} + self.divider = 0.5 + if self.type == "leaf" then + self:add_view(EmptyView()) + end +end + + +function Node:propagate(fn, ...) + self.a[fn](self.a, ...) + self.b[fn](self.b, ...) +end + + +function Node:on_mouse_moved(x, y, ...) + self.hovered_tab = self:get_tab_overlapping_point(x, y) + if self.type == "leaf" then + self.active_view:on_mouse_moved(x, y, ...) + else + self:propagate("on_mouse_moved", x, y, ...) + end +end + + +function Node:on_mouse_released(...) + if self.type == "leaf" then + self.active_view:on_mouse_released(...) + else + self:propagate("on_mouse_released", ...) + end +end + + +function Node:consume(node) + for k, _ in pairs(self) do self[k] = nil end + for k, v in pairs(node) do self[k] = v end +end + + +local type_map = { up="vsplit", down="vsplit", left="hsplit", right="hsplit" } + +function Node:split(dir, view, locked) + assert(self.type == "leaf", "Tried to split non-leaf node") + local type = assert(type_map[dir], "Invalid direction") + local last_active = core.active_view + local child = Node() + child:consume(self) + self:consume(Node(type)) + self.a = child + self.b = Node() + if view then self.b:add_view(view) end + if locked then + self.b.locked = locked + core.set_active_view(last_active) + end + if dir == "up" or dir == "left" then + self.a, self.b = self.b, self.a + end + return child +end + + +function Node:close_active_view(root) + local do_close = function() + if #self.views > 1 then + local idx = self:get_view_idx(self.active_view) + table.remove(self.views, idx) + self:set_active_view(self.views[idx] or self.views[#self.views]) + else + local parent = self:get_parent_node(root) + local is_a = (parent.a == self) + local other = parent[is_a and "b" or "a"] + if other:get_locked_size() then + self.views = {} + self:add_view(EmptyView()) + else + parent:consume(other) + local p = parent + while p.type ~= "leaf" do + p = p[is_a and "a" or "b"] + end + p:set_active_view(p.active_view) + end + end + core.last_active_view = nil + end + self.active_view:try_close(do_close) +end + + +function Node:add_view(view) + assert(self.type == "leaf", "Tried to add view to non-leaf node") + assert(not self.locked, "Tried to add view to locked node") + if self.views[1] and self.views[1]:is(EmptyView) then + table.remove(self.views) + end + table.insert(self.views, view) + self:set_active_view(view) +end + + +function Node:set_active_view(view) + assert(self.type == "leaf", "Tried to set active view on non-leaf node") + self.active_view = view + core.set_active_view(view) +end + + +function Node:get_view_idx(view) + for i, v in ipairs(self.views) do + if v == view then return i end + end +end + + +function Node:get_node_for_view(view) + for _, v in ipairs(self.views) do + if v == view then return self end + end + if self.type ~= "leaf" then + return self.a:get_node_for_view(view) or self.b:get_node_for_view(view) + end +end + + +function Node:get_parent_node(root) + if root.a == self or root.b == self then + return root + elseif root.type ~= "leaf" then + return self:get_parent_node(root.a) or self:get_parent_node(root.b) + end +end + + +function Node:get_children(t) + t = t or {} + for _, view in ipairs(self.views) do + table.insert(t, view) + end + if self.a then self.a:get_children(t) end + if self.b then self.b:get_children(t) end + return t +end + + +function Node:get_divider_overlapping_point(px, py) + if self.type ~= "leaf" then + local p = 6 + local x, y, w, h = self:get_divider_rect() + x, y = x - p, y - p + w, h = w + p * 2, h + p * 2 + if px > x and py > y and px < x + w and py < y + h then + return self + end + return self.a:get_divider_overlapping_point(px, py) + or self.b:get_divider_overlapping_point(px, py) + end +end + + +function Node:get_tab_overlapping_point(px, py) + if #self.views == 1 then return nil end + local x, y, w, h = self:get_tab_rect(1) + if px >= x and py >= y and px < x + w * #self.views and py < y + h then + return math.floor((px - x) / w) + 1 + end +end + + +function Node:get_child_overlapping_point(x, y) + local child + if self.type == "leaf" then + return self + elseif self.type == "hsplit" then + child = (x < self.b.position.x) and self.a or self.b + elseif self.type == "vsplit" then + child = (y < self.b.position.y) and self.a or self.b + end + return child:get_child_overlapping_point(x, y) +end + + +function Node:get_tab_rect(idx) + if not config.tabs_allowed then return 0,0,0,0 end --< https://github.com/rxi/lite/issues/191 + local tw = math.min(style.tab_width, math.ceil(self.size.x / #self.views)) + local h = style.font:get_height() + style.padding.y * 2 + return self.position.x + (idx-1) * tw, self.position.y, tw, h +end + + +function Node:get_divider_rect() + local x, y = self.position.x, self.position.y + if self.type == "hsplit" then + return x + self.a.size.x, y, style.divider_size, self.size.y + elseif self.type == "vsplit" then + return x, y + self.a.size.y, self.size.x, style.divider_size + end +end + + +function Node:get_locked_size() + if self.type == "leaf" then + if self.locked then + local size = self.active_view.size + return size.x, size.y + end + else + local x1, y1 = self.a:get_locked_size() + local x2, y2 = self.b:get_locked_size() + if x1 and x2 then + local dsx = (x1 < 1 or x2 < 1) and 0 or style.divider_size + local dsy = (y1 < 1 or y2 < 1) and 0 or style.divider_size + return x1 + x2 + dsx, y1 + y2 + dsy + end + end +end + + + + +-- calculating the sizes is the same for hsplits and vsplits, except the x/y +-- axis are swapped; this function lets us use the same code for both +local function calc_split_sizes(self, x, y, x1, x2) + local n + local ds = (x1 and x1 < 1 or x2 and x2 < 1) and 0 or style.divider_size + if x1 then + n = x1 + ds + elseif x2 then + n = self.size[x] - x2 + else + n = math.floor(self.size[x] * self.divider) + end + self.a.position[x] = self.position[x] + self.a.position[y] = self.position[y] + self.a.size[x] = n - ds + self.a.size[y] = self.size[y] + self.b.position[x] = self.position[x] + n + self.b.position[y] = self.position[y] + self.b.size[x] = self.size[x] - n + self.b.size[y] = self.size[y] +end + + +function Node:update_layout() + if self.type == "leaf" then + local av = self.active_view + if #self.views > 1 then + local _, _, _, th = self:get_tab_rect(1) + av.position.x, av.position.y = self.position.x, self.position.y + th + av.size.x, av.size.y = self.size.x, self.size.y - th + else + common.copy_position_and_size(av, self) + end + else + local x1, y1 = self.a:get_locked_size() + local x2, y2 = self.b:get_locked_size() + if self.type == "hsplit" then + calc_split_sizes(self, "x", "y", x1, x2) + elseif self.type == "vsplit" then + calc_split_sizes(self, "y", "x", y1, y2) + end + self.a:update_layout() + self.b:update_layout() + end +end + + +function Node:update() + if self.type == "leaf" then + for _, view in ipairs(self.views) do + view:update() + end + else + self.a:update() + self.b:update() + end +end + + +function Node:draw_tabs() + local x, y, _, h = self:get_tab_rect(1) + local ds = style.divider_size + core.push_clip_rect(x, y, self.size.x, h) + renderer.draw_rect(x, y, self.size.x, h, style.background2) + renderer.draw_rect(x, y + h - ds, self.size.x, ds, style.divider) + + for i, view in ipairs(self.views) do + local x, y, w, h = self:get_tab_rect(i) + local text = view:get_name() + local color = style.dim + if view == self.active_view then + color = style.text + renderer.draw_rect(x, y, w, h, style.background) + renderer.draw_rect(x + w, y, ds, h, style.divider) + renderer.draw_rect(x - ds, y, ds, h, style.divider) + end + if i == self.hovered_tab then + color = style.text + end + core.push_clip_rect(x, y, w, h) + x, w = x + style.padding.x, w - style.padding.x * 2 + local align = style.font:get_width(text) > w and "left" or "center" + common.draw_text(style.font, color, text, align, x, y, w, h) + core.pop_clip_rect() + end + + core.pop_clip_rect() +end + + +function Node:draw() + if self.type == "leaf" then + if #self.views > 1 and config.tabs_allowed then --< https://github.com/rxi/lite/issues/191 + self:draw_tabs() + end + local pos, size = self.active_view.position, self.active_view.size + core.push_clip_rect(pos.x, pos.y, size.x + pos.x % 1, size.y + pos.y % 1) + self.active_view:draw() + core.pop_clip_rect() + else + local x, y, w, h = self:get_divider_rect() + renderer.draw_rect(x, y, w, h, style.divider) + self:propagate("draw") + end +end + +return Node diff --git a/tools/editor/art/lite/data/core/rootview.lua b/tools/editor/art/lite/data/core/rootview.lua index b968fd3..3351314 100644 --- a/tools/editor/art/lite/data/core/rootview.lua +++ b/tools/editor/art/lite/data/core/rootview.lua @@ -5,378 +5,13 @@ local keymap = require "core.keymap" local Object = require "core.object" local View = require "core.view" local DocView = require "core.docview" +local Node = require "core.node" local config = require "core.config" -local EmptyView = View:extend() - -local function draw_text(x, y, color) - local th = style.big_font:get_height() - local dh = th + style.padding.y * 2 - x = renderer.draw_text(style.big_font, "edit", x, y + (dh - th) / 2, color) --< @r-lyeh lite>edit - x = x + style.padding.x - renderer.draw_rect(x, y, math.ceil(1 * SCALE), dh, color) - local lines = { - { fmt = "%s to run a command", cmd = "core:find-command" }, - { fmt = "%s to open a file from the project", cmd = "core:find-file" }, - } - th = style.font:get_height() - y = y + (dh - th * 2 - style.padding.y) / 2 - local w = 0 - for _, line in ipairs(lines) do - local text = string.format(line.fmt, keymap.get_binding(line.cmd)) - w = math.max(w, renderer.draw_text(style.font, text, x + style.padding.x, y, color)) - y = y + th + style.padding.y - end - return w, dh -end - -function EmptyView:draw() - self:draw_background(style.background) - local w, h = draw_text(0, 0, { 0, 0, 0, 0 }) - local x = self.position.x + math.max(style.padding.x, (self.size.x - w) / 2) - local y = self.position.y + (self.size.y - h) / 2 - draw_text(x, y, style.dim) -end -local Node = Object:extend() - -function Node:new(type) - self.type = type or "leaf" - self.position = { x = 0, y = 0 } - self.size = { x = 0, y = 0 } - self.views = {} - self.divider = 0.5 - if self.type == "leaf" then - self:add_view(EmptyView()) - end -end - - -function Node:propagate(fn, ...) - self.a[fn](self.a, ...) - self.b[fn](self.b, ...) -end - - -function Node:on_mouse_moved(x, y, ...) - self.hovered_tab = self:get_tab_overlapping_point(x, y) - if self.type == "leaf" then - self.active_view:on_mouse_moved(x, y, ...) - else - self:propagate("on_mouse_moved", x, y, ...) - end -end - - -function Node:on_mouse_released(...) - if self.type == "leaf" then - self.active_view:on_mouse_released(...) - else - self:propagate("on_mouse_released", ...) - end -end - - -function Node:consume(node) - for k, _ in pairs(self) do self[k] = nil end - for k, v in pairs(node) do self[k] = v end -end - - -local type_map = { up="vsplit", down="vsplit", left="hsplit", right="hsplit" } - -function Node:split(dir, view, locked) - assert(self.type == "leaf", "Tried to split non-leaf node") - local type = assert(type_map[dir], "Invalid direction") - local last_active = core.active_view - local child = Node() - child:consume(self) - self:consume(Node(type)) - self.a = child - self.b = Node() - if view then self.b:add_view(view) end - if locked then - self.b.locked = locked - core.set_active_view(last_active) - end - if dir == "up" or dir == "left" then - self.a, self.b = self.b, self.a - end - return child -end - - -function Node:close_active_view(root) - local do_close = function() - if #self.views > 1 then - local idx = self:get_view_idx(self.active_view) - table.remove(self.views, idx) - self:set_active_view(self.views[idx] or self.views[#self.views]) - else - local parent = self:get_parent_node(root) - local is_a = (parent.a == self) - local other = parent[is_a and "b" or "a"] - if other:get_locked_size() then - self.views = {} - self:add_view(EmptyView()) - else - parent:consume(other) - local p = parent - while p.type ~= "leaf" do - p = p[is_a and "a" or "b"] - end - p:set_active_view(p.active_view) - end - end - core.last_active_view = nil - end - self.active_view:try_close(do_close) -end - - -function Node:add_view(view) - assert(self.type == "leaf", "Tried to add view to non-leaf node") - assert(not self.locked, "Tried to add view to locked node") - if self.views[1] and self.views[1]:is(EmptyView) then - table.remove(self.views) - end - table.insert(self.views, view) - self:set_active_view(view) -end - - -function Node:set_active_view(view) - assert(self.type == "leaf", "Tried to set active view on non-leaf node") - self.active_view = view - core.set_active_view(view) -end - - -function Node:get_view_idx(view) - for i, v in ipairs(self.views) do - if v == view then return i end - end -end - - -function Node:get_node_for_view(view) - for _, v in ipairs(self.views) do - if v == view then return self end - end - if self.type ~= "leaf" then - return self.a:get_node_for_view(view) or self.b:get_node_for_view(view) - end -end - - -function Node:get_parent_node(root) - if root.a == self or root.b == self then - return root - elseif root.type ~= "leaf" then - return self:get_parent_node(root.a) or self:get_parent_node(root.b) - end -end - - -function Node:get_children(t) - t = t or {} - for _, view in ipairs(self.views) do - table.insert(t, view) - end - if self.a then self.a:get_children(t) end - if self.b then self.b:get_children(t) end - return t -end - - -function Node:get_divider_overlapping_point(px, py) - if self.type ~= "leaf" then - local p = 6 - local x, y, w, h = self:get_divider_rect() - x, y = x - p, y - p - w, h = w + p * 2, h + p * 2 - if px > x and py > y and px < x + w and py < y + h then - return self - end - return self.a:get_divider_overlapping_point(px, py) - or self.b:get_divider_overlapping_point(px, py) - end -end - - -function Node:get_tab_overlapping_point(px, py) - if #self.views == 1 then return nil end - local x, y, w, h = self:get_tab_rect(1) - if px >= x and py >= y and px < x + w * #self.views and py < y + h then - return math.floor((px - x) / w) + 1 - end -end - - -function Node:get_child_overlapping_point(x, y) - local child - if self.type == "leaf" then - return self - elseif self.type == "hsplit" then - child = (x < self.b.position.x) and self.a or self.b - elseif self.type == "vsplit" then - child = (y < self.b.position.y) and self.a or self.b - end - return child:get_child_overlapping_point(x, y) -end - - -function Node:get_tab_rect(idx) - if not config.tabs_allowed then return 0,0,0,0 end --< https://github.com/rxi/lite/issues/191 - local tw = math.min(style.tab_width, math.ceil(self.size.x / #self.views)) - local h = style.font:get_height() + style.padding.y * 2 - return self.position.x + (idx-1) * tw, self.position.y, tw, h -end - - -function Node:get_divider_rect() - local x, y = self.position.x, self.position.y - if self.type == "hsplit" then - return x + self.a.size.x, y, style.divider_size, self.size.y - elseif self.type == "vsplit" then - return x, y + self.a.size.y, self.size.x, style.divider_size - end -end - - -function Node:get_locked_size() - if self.type == "leaf" then - if self.locked then - local size = self.active_view.size - return size.x, size.y - end - else - local x1, y1 = self.a:get_locked_size() - local x2, y2 = self.b:get_locked_size() - if x1 and x2 then - local dsx = (x1 < 1 or x2 < 1) and 0 or style.divider_size - local dsy = (y1 < 1 or y2 < 1) and 0 or style.divider_size - return x1 + x2 + dsx, y1 + y2 + dsy - end - end -end - - -local function copy_position_and_size(dst, src) - dst.position.x, dst.position.y = src.position.x, src.position.y - dst.size.x, dst.size.y = src.size.x, src.size.y -end - - --- calculating the sizes is the same for hsplits and vsplits, except the x/y --- axis are swapped; this function lets us use the same code for both -local function calc_split_sizes(self, x, y, x1, x2) - local n - local ds = (x1 and x1 < 1 or x2 and x2 < 1) and 0 or style.divider_size - if x1 then - n = x1 + ds - elseif x2 then - n = self.size[x] - x2 - else - n = math.floor(self.size[x] * self.divider) - end - self.a.position[x] = self.position[x] - self.a.position[y] = self.position[y] - self.a.size[x] = n - ds - self.a.size[y] = self.size[y] - self.b.position[x] = self.position[x] + n - self.b.position[y] = self.position[y] - self.b.size[x] = self.size[x] - n - self.b.size[y] = self.size[y] -end - - -function Node:update_layout() - if self.type == "leaf" then - local av = self.active_view - if #self.views > 1 then - local _, _, _, th = self:get_tab_rect(1) - av.position.x, av.position.y = self.position.x, self.position.y + th - av.size.x, av.size.y = self.size.x, self.size.y - th - else - copy_position_and_size(av, self) - end - else - local x1, y1 = self.a:get_locked_size() - local x2, y2 = self.b:get_locked_size() - if self.type == "hsplit" then - calc_split_sizes(self, "x", "y", x1, x2) - elseif self.type == "vsplit" then - calc_split_sizes(self, "y", "x", y1, y2) - end - self.a:update_layout() - self.b:update_layout() - end -end - - -function Node:update() - if self.type == "leaf" then - for _, view in ipairs(self.views) do - view:update() - end - else - self.a:update() - self.b:update() - end -end - - -function Node:draw_tabs() - local x, y, _, h = self:get_tab_rect(1) - local ds = style.divider_size - core.push_clip_rect(x, y, self.size.x, h) - renderer.draw_rect(x, y, self.size.x, h, style.background2) - renderer.draw_rect(x, y + h - ds, self.size.x, ds, style.divider) - - for i, view in ipairs(self.views) do - local x, y, w, h = self:get_tab_rect(i) - local text = view:get_name() - local color = style.dim - if view == self.active_view then - color = style.text - renderer.draw_rect(x, y, w, h, style.background) - renderer.draw_rect(x + w, y, ds, h, style.divider) - renderer.draw_rect(x - ds, y, ds, h, style.divider) - end - if i == self.hovered_tab then - color = style.text - end - core.push_clip_rect(x, y, w, h) - x, w = x + style.padding.x, w - style.padding.x * 2 - local align = style.font:get_width(text) > w and "left" or "center" - common.draw_text(style.font, color, text, align, x, y, w, h) - core.pop_clip_rect() - end - - core.pop_clip_rect() -end - - -function Node:draw() - if self.type == "leaf" then - if #self.views > 1 and config.tabs_allowed then --< https://github.com/rxi/lite/issues/191 - self:draw_tabs() - end - local pos, size = self.active_view.position, self.active_view.size - core.push_clip_rect(pos.x, pos.y, size.x + pos.x % 1, size.y + pos.y % 1) - self.active_view:draw() - core.pop_clip_rect() - else - local x, y, w, h = self:get_divider_rect() - renderer.draw_rect(x, y, w, h, style.divider) - self:propagate("draw") - end -end - local RootView = View:extend() @@ -430,7 +65,7 @@ function RootView:on_mouse_pressed(button, x, y, clicks) local idx = node:get_tab_overlapping_point(x, y) if idx then node:set_active_view(node.views[idx]) - if button == "middle" then + if button == "right" then --< @rlyeh middle>right node:close_active_view(self.root_node) end else @@ -488,7 +123,7 @@ end function RootView:update() - copy_position_and_size(self.root_node, self) + common.copy_position_and_size(self.root_node, self) self.root_node:update() self.root_node:update_layout() end diff --git a/tools/editor/art/lite/data/core/statusview.lua b/tools/editor/art/lite/data/core/statusview.lua index 03164af..acd5a27 100644 --- a/tools/editor/art/lite/data/core/statusview.lua +++ b/tools/editor/art/lite/data/core/statusview.lua @@ -18,6 +18,8 @@ function StatusView:new() StatusView.super.new(self) self.message_timeout = 0 self.message = {} + self.tooltip_mode = false + self.tooltip = {} end @@ -39,6 +41,17 @@ function StatusView:show_message(icon, icon_color, text) end +function StatusView:show_tooltip(text) + self.tooltip = { text } + self.tooltip_mode = true +end + + +function StatusView:remove_tooltip() + self.tooltip_mode = false +end + + function StatusView:update() self.size.y = style.font:get_height() + style.padding.y * 2 @@ -94,6 +107,9 @@ function StatusView:get_items() local dv = core.active_view local line, col = dv.doc:get_selection() local dirty = dv.doc:is_dirty() + local indent = dv.doc.indent_info + local indent_label = (indent and indent.type == "hard") and "tabs: " or "spaces: " + local indent_size = indent and tostring(indent.size) .. (indent.confirmed and "" or "*") or "unknown" --< https://github.com/rxi/lite/issues/300 col = common.utf8_len(dv.doc:get_text(line, 1, line, col)) + 1 @@ -112,6 +128,8 @@ function StatusView:get_items() self.separator, string.format("%.f%%", line / #dv.doc.lines * 100), --< @r-lyeh: %d -> %.f }, { + style.text, indent_label, indent_size, + style.dim, self.separator2, style.text, style.icon_font, "g", style.font, style.dim, self.separator2, style.text, #dv.doc.lines, " lines", @@ -136,9 +154,13 @@ function StatusView:draw() self:draw_items(self.message, false, self.size.y) end - local left, right = self:get_items() - self:draw_items(left) - self:draw_items(right, true) + if self.tooltip_mode then + self:draw_items(self.tooltip) + else + local left, right = self:get_items() + self:draw_items(left) + self:draw_items(right, true) + end end diff --git a/tools/editor/art/lite/data/lite.usage b/tools/editor/art/lite/data/lite.usage index 3b536cc..76e56f9 100644 --- a/tools/editor/art/lite/data/lite.usage +++ b/tools/editor/art/lite/data/lite.usage @@ -134,12 +134,12 @@ Plugins can be downloaded from the [plugins repository](https://github.com/rxi/l ## Color Themes Colors themes in lite are lua modules which overwrite the color fields of lite's -`core.style` module. Color themes should be placed in the `data/user/colors` +`core.style` module. Color themes should be placed in the `data/themes` directory. A color theme can be set by requiring it in your user module: ```lua -require "user.colors.winter" +require "themes.winter" ``` Color themes can be downloaded from the [color themes repository](https://github.com/rxi/lite-colors). diff --git a/tools/editor/art/lite/data/plugins/console.lua b/tools/editor/art/lite/data/plugins/console.lua new file mode 100644 index 0000000..7196f4f --- /dev/null +++ b/tools/editor/art/lite/data/plugins/console.lua @@ -0,0 +1,383 @@ +local core = require "core" +local keymap = require "core.keymap" +local command = require "core.command" +local common = require "core.common" +local config = require "core.config" +local style = require "core.style" +local View = require "core.view" + +config.console_size = 250 * SCALE +config.max_console_lines = 200 +config.autoscroll_console = true + +local files = { + script = core.temp_filename(PLATFORM == "Windows" and ".bat"), + script2 = core.temp_filename(PLATFORM == "Windows" and ".bat"), + output = core.temp_filename(), + complete = core.temp_filename(), +} + +local console = {} + +local views = {} +local pending_threads = {} +local thread_active = false +local output = nil +local output_id = 0 +local visible = false + +function console.clear() + output = { { text = "", time = 0 } } +end + + +local function read_file(filename, offset) + local fp = io.open(filename, "rb") + fp:seek("set", offset or 0) + local res = fp:read("*a") + fp:close() + return res +end + + +local function write_file(filename, text) + local fp = io.open(filename, "w") + fp:write(text) + fp:close() +end + + +local function lines(text) + return (text .. "\n"):gmatch("(.-)\n") +end + + +local function push_output(str, opt) + local first = true + for line in lines(str) do + if first then + line = table.remove(output).text .. line + end + line = line:gsub("\x1b%[[%d;]+m", "") -- strip ANSI colors + table.insert(output, { + text = line, + time = os.time(), + icon = line:find(opt.error_pattern) and "!" + or line:find(opt.warning_pattern) and "i", + file_pattern = opt.file_pattern, + }) + if #output > config.max_console_lines then + table.remove(output, 1) + for view in pairs(views) do + view:on_line_removed() + end + end + first = false + end + output_id = output_id + 1 + core.redraw = true +end + + +local function init_opt(opt) + local res = { + command = "", + file_pattern = "[^?:%s]+%.[^?:%s]+", + error_pattern = "error", + warning_pattern = "warning", + on_complete = function() end, + } + for k, v in pairs(res) do + res[k] = opt[k] or v + end + return res +end + + +function console.run(opt) + opt = init_opt(opt) + + local function thread() + -- init script file(s) + if PLATFORM == "Windows" then + write_file(files.script, opt.command .. "\n") + write_file(files.script2, string.format([[ + @echo off + call %q >%q 2>&1 + echo "" >%q + exit + ]], files.script, files.output, files.complete)) + system.exec(string.format("call %q", files.script2)) + else + write_file(files.script, string.format([[ + %s + touch %q + ]], opt.command, files.complete)) + system.exec(string.format("bash %q >%q 2>&1", files.script, files.output)) + end + + -- checks output file for change and reads + local last_size = 0 + local function check_output_file() + if PLATFORM == "Windows" then + local fp = io.open(files.output) + if fp then fp:close() end + end + local info = system.get_file_info(files.output) + if info and info.size > last_size then + local text = read_file(files.output, last_size) + push_output(text, opt) + last_size = info.size + end + end + + -- read output file until we get a file indicating completion + while not system.get_file_info(files.complete) do + check_output_file() + coroutine.yield(0.1) + end + check_output_file() + if output[#output].text ~= "" then + push_output("\n", opt) + end + push_output("!DIVIDER\n", opt) + + -- clean up and finish + for _, file in pairs(files) do + os.remove(file) + end + opt.on_complete() + + -- handle pending thread + local pending = table.remove(pending_threads, 1) + if pending then + core.add_thread(pending) + else + thread_active = false + end + end + + -- push/init thread + if thread_active then + table.insert(pending_threads, thread) + else + core.add_thread(thread) + thread_active = true + end + + -- make sure static console is visible if it's the only ConsoleView + local count = 0 + for _ in pairs(views) do count = count + 1 end + if count == 1 then visible = true end +end + + + +local ConsoleView = View:extend() + +function ConsoleView:new() + ConsoleView.super.new(self) + self.scrollable = true + self.hovered_idx = -1 + views[self] = true +end + + +function ConsoleView:try_close(...) + ConsoleView.super.try_close(self, ...) + views[self] = nil +end + + +function ConsoleView:get_name() + return "Console" +end + + +function ConsoleView:get_line_height() + return style.code_font:get_height() * config.line_height +end + + +function ConsoleView:get_line_count() + return #output - (output[#output].text == "" and 1 or 0) +end + + +function ConsoleView:get_scrollable_size() + return self:get_line_count() * self:get_line_height() + style.padding.y * 2 +end + + +function ConsoleView:get_visible_line_range() + local lh = self:get_line_height() + local min = math.max(1, math.floor(self.scroll.y / lh)) + return min, min + math.floor(self.size.y / lh) + 1 +end + + +function ConsoleView:on_mouse_moved(mx, my, ...) + ConsoleView.super.on_mouse_moved(self, mx, my, ...) + self.hovered_idx = 0 + for i, item, x,y,w,h in self:each_visible_line() do + if mx >= x and my >= y and mx < x + w and my < y + h then + if item.text:find(item.file_pattern) then + self.hovered_idx = i + end + break + end + end +end + + +local function resolve_file(name) + if system.get_file_info(name) then + return name + end + local filenames = {} + for _, f in ipairs(core.project_files) do + table.insert(filenames, f.filename) + end + local t = common.fuzzy_match(filenames, name) + return t[1] +end + + +function ConsoleView:on_line_removed() + local diff = self:get_line_height() + self.scroll.y = self.scroll.y - diff + self.scroll.to.y = self.scroll.to.y - diff +end + + +function ConsoleView:on_mouse_pressed(...) + local caught = ConsoleView.super.on_mouse_pressed(self, ...) + if caught then + return + end + local item = output[self.hovered_idx] + if item then + local file, line, col = item.text:match(item.file_pattern) + local resolved_file = resolve_file(file) + if not resolved_file then + core.error("Couldn't resolve file \"%s\"", file) + return + end + core.try(function() + core.set_active_view(core.last_active_view) + local dv = core.root_view:open_doc(core.open_doc(resolved_file)) + if line then + dv.doc:set_selection(line, col or 0) + dv:scroll_to_line(line, false, true) + end + end) + end +end + + +function ConsoleView:each_visible_line() + return coroutine.wrap(function() + local x, y = self:get_content_offset() + local lh = self:get_line_height() + local min, max = self:get_visible_line_range() + y = y + lh * (min - 1) + style.padding.y + max = math.min(max, self:get_line_count()) + + for i = min, max do + local item = output[i] + if not item then break end + coroutine.yield(i, item, x, y, self.size.x, lh) + y = y + lh + end + end) +end + + +function ConsoleView:update(...) + if self.last_output_id ~= output_id then + if config.autoscroll_console then + self.scroll.to.y = self:get_scrollable_size() + end + self.last_output_id = output_id + end + ConsoleView.super.update(self, ...) +end + + +function ConsoleView:draw() + self:draw_background(style.background) + local icon_w = style.icon_font:get_width("!") + + for i, item, x, y, w, h in self:each_visible_line() do + local tx = x + style.padding.x + local time = os.date("%H:%M:%S", item.time) + local color = style.text + if self.hovered_idx == i then + color = style.accent + renderer.draw_rect(x, y, w, h, style.line_highlight) + end + if item.text == "!DIVIDER" then + local w = style.font:get_width(time) + renderer.draw_rect(tx, y + h / 2, w, math.ceil(SCALE * 1), style.dim) + else + tx = common.draw_text(style.font, style.dim, time, "left", tx, y, w, h) + tx = tx + style.padding.x + if item.icon then + common.draw_text(style.icon_font, color, item.icon, "left", tx, y, w, h) + end + tx = tx + icon_w + style.padding.x + common.draw_text(style.code_font, color, item.text, "left", tx, y, w, h) + end + end + + self:draw_scrollbar(self) +end + + +-- init static bottom-of-screen console +local view = ConsoleView() +local node = core.root_view:get_active_node() +node:split("down", view, true) + +function view:update(...) + local dest = visible and config.console_size or 0 + self:move_towards(self.size, "y", dest) + ConsoleView.update(self, ...) +end + + +local last_command = "" + +command.add(nil, { + ["console:reset-output"] = function() + output = { { text = "", time = 0 } } + end, + + ["console:open-console"] = function() + local node = core.root_view:get_active_node() + node:add_view(ConsoleView()) + end, + + ["console:toggle"] = function() + visible = not visible + end, + + ["console:run"] = function() + core.command_view:set_text(last_command, true) + core.command_view:enter("Run Console Command", function(cmd) + console.run { command = cmd } + last_command = cmd + end) + end +}) + +keymap.add { + ["ctrl+."] = "console:toggle", + ["ctrl+shift+."] = "console:run", +} + +-- for `workspace` plugin: +package.loaded["plugins.console.view"] = ConsoleView + +console.clear() +return console diff --git a/tools/editor/art/lite/data/plugins/contextmenu.lua b/tools/editor/art/lite/data/plugins/contextmenu.lua new file mode 100644 index 0000000..31dc809 --- /dev/null +++ b/tools/editor/art/lite/data/plugins/contextmenu.lua @@ -0,0 +1,271 @@ +local core = require "core" +local common = require "core.common" +local config = require "core.config" +local command = require "core.command" +local keymap = require "core.keymap" +local style = require "core.style" +local Object = require "core.object" +local RootView = require "core.rootview" + +local border_width = 1 +local divider_width = 1 +local DIVIDER = {} + +local ContextMenu = Object:extend() + +ContextMenu.DIVIDER = DIVIDER + +function ContextMenu:new() + self.itemset = {} + self.show_context_menu = false + self.selected = -1 + self.height = 0 + self.position = { x = 0, y = 0 } +end + +local function get_item_size(item) + local lw, lh + if item == DIVIDER then + lw = 0 + lh = divider_width + else + lw = style.font:get_width(item.text) + if item.info then + lw = lw + style.padding.x + style.font:get_width(item.info) + end + lh = style.font:get_height() + style.padding.y + end + return lw, lh +end + +function ContextMenu:register(predicate, items) + if type(predicate) == "string" then + predicate = require(predicate) + end + if type(predicate) == "table" then + local class = predicate + predicate = function() return core.active_view:is(class) end + end + + local width, height = 0, 0 --precalculate the size of context menu + for i, item in ipairs(items) do + if item ~= DIVIDER then + item.info = keymap.reverse_map[item.command] + end + local lw, lh = get_item_size(item) + width = math.max(width, lw) + height = height + lh + end + width = width + style.padding.x * 2 + items.width, items.height = width, height + table.insert(self.itemset, { predicate = predicate, items = items }) +end + +function ContextMenu:show(x, y) + self.items = nil + for _, items in ipairs(self.itemset) do + if items.predicate(x, y) then + self.items = items.items + break + end + end + + if self.items then + local w, h = self.items.width, self.items.height + + -- by default the box is opened on the right and below + if x + w >= core.root_view.size.x then + x = x - w + end + if y + h >= core.root_view.size.y then + y = y - h + end + + self.position.x, self.position.y = x, y + self.show_context_menu = true + return true + end + return false +end + +function ContextMenu:hide() + self.show_context_menu = false + self.items = nil + self.selected = -1 + self.height = 0 +end + +function ContextMenu:each_item() + local x, y, w = self.position.x, self.position.y, self.items.width + local oy = y + return coroutine.wrap(function() + for i, item in ipairs(self.items) do + local _, lh = get_item_size(item) + if y - oy > self.height then break end + coroutine.yield(i, item, x, y, w, lh) + y = y + lh + end + end) +end + +function ContextMenu:on_mouse_moved(px, py) + if not self.show_context_menu then return end + + for i, item, x, y, w, h in self:each_item() do + if px > x and px <= x + w and py > y and py <= y + h then + system.set_cursor("arrow") + self.selected = i + return true + end + end + self.selected = -1 + return true +end + +function ContextMenu:on_selected(item) + if type(item.command) == "string" then + command.perform(item.command) + else + item.command() + end +end + +function ContextMenu:on_mouse_pressed(button, x, y, clicks) + local selected = (self.items or {})[self.selected] + local caught = false + + self:hide() + if button == "left" then + if selected then + self:on_selected(selected) + caught = true + end + end + + if button == "right" then + caught = self:show(x, y) + end + return caught +end + +-- copied from core.docview +function ContextMenu:move_towards(t, k, dest, rate) + if type(t) ~= "table" then + return self:move_towards(self, t, k, dest, rate) + end + local val = t[k] + if math.abs(val - dest) < 0.5 then + t[k] = dest + else + t[k] = common.lerp(val, dest, rate or 0.5) + end + if val ~= dest then + core.redraw = true + end +end + +function ContextMenu:update() + if self.show_context_menu then + self:move_towards("height", self.items.height) + end +end + +function ContextMenu:draw() + if not self.show_context_menu then return end + core.root_view:defer_draw(self.draw_context_menu, self) +end + +function ContextMenu:draw_context_menu() + if not self.items then return end + local bx, by, bw, bh = self.position.x, self.position.y, self.items.width, self.height + + renderer.draw_rect( + bx - border_width, + by - border_width, + bw + (border_width * 2), + bh + (border_width * 2), + style.divider + ) + renderer.draw_rect(bx, by, bw, bh, style.background3) + + for i, item, x, y, w, h in self:each_item() do + if item == DIVIDER then + renderer.draw_rect(x, y, w, h, style.caret) + else + if i == self.selected then + renderer.draw_rect(x, y, w, h, style.selection) + end + + common.draw_text(style.font, style.text, item.text, "left", x + style.padding.x, y, w, h) + if item.info then + common.draw_text(style.font, style.dim, item.info, "right", x, y, w - style.padding.x, h) + end + end + end +end + + +local menu = ContextMenu() +local root_view_on_mouse_pressed = RootView.on_mouse_pressed +local root_view_on_mouse_moved = RootView.on_mouse_moved +local root_view_update = RootView.update +local root_view_draw = RootView.draw + +function RootView:on_mouse_moved(...) + if menu:on_mouse_moved(...) then return end + root_view_on_mouse_moved(self, ...) +end + +-- copied from core.rootview +function RootView:on_mouse_pressed(button, x,y, clicks) + local div = self.root_node:get_divider_overlapping_point(x, y) + if div then + self.dragged_divider = div + return + end + local node = self.root_node:get_child_overlapping_point(x, y) + local idx = node:get_tab_overlapping_point(x, y) + if idx then + node:set_active_view(node.views[idx]) + if button == "right" then --< @r-lyeh middle>right + node:close_active_view(self.root_node) + end + else + core.set_active_view(node.active_view) + -- send to context menu first + if not menu:on_mouse_pressed(button, x, y, clicks) then + node.active_view:on_mouse_pressed(button, x, y, clicks) + end + end +end + +function RootView:update(...) + root_view_update(self, ...) + menu:update() +end + +function RootView:draw(...) + root_view_draw(self, ...) + menu:draw() +end + +command.add(nil, { + ["context:show"] = function() + menu:show(core.active_view.position.x, core.active_view.position.y) + end +}) + +keymap.add { + ["menu"] = "context:show" +} + +-- register some sensible defaults +menu:register("core.docview", { + { text = "Cut", command = "doc:cut" }, + { text = "Copy", command = "doc:copy" }, + { text = "Paste", command = "doc:paste" }, + DIVIDER, + { text = "Command Palette...", command = "core:find-command" } +}) + +return menu \ No newline at end of file diff --git a/tools/editor/art/lite/data/plugins/drawwhitespace.lua b/tools/editor/art/lite/data/plugins/drawwhitespace.lua new file mode 100644 index 0000000..c6ed07d --- /dev/null +++ b/tools/editor/art/lite/data/plugins/drawwhitespace.lua @@ -0,0 +1,37 @@ +local common = require "core.common" +local config = require "core.config" +local style = require "core.style" +local DocView = require "core.docview" +local command = require "core.command" + +-- originally written by luveti + +config.whitespace_map = { [" "] = "·", ["\t"] = "»" } +config.draw_whitespace = true + +local draw_line_text = DocView.draw_line_text + +function DocView:draw_line_text(idx, x, y) + draw_line_text(self, idx, x, y) + if not config.draw_whitespace then return end + + local text = self.doc.lines[idx] + local tx, ty = x, y + self:get_line_text_y_offset() + local font = self:get_font() + local color = style.whitespace or style.syntax.comment + local map = config.whitespace_map + + for chr in common.utf8_chars(text) do + local rep = map[chr] + if rep then + renderer.draw_text(font, rep, tx, ty, color) + end + tx = tx + font:get_width(chr) + end +end + +command.add("core.docview", { + ["draw-whitespace:toggle"] = function() config.draw_whitespace = not config.draw_whitespace end, + ["draw-whitespace:disable"] = function() config.draw_whitespace = false end, + ["draw-whitespace:enable"] = function() config.draw_whitespace = true end, +}) diff --git a/tools/editor/art/lite/data/plugins/fsutils.lua b/tools/editor/art/lite/data/plugins/fsutils.lua new file mode 100644 index 0000000..636fb6a --- /dev/null +++ b/tools/editor/art/lite/data/plugins/fsutils.lua @@ -0,0 +1,167 @@ +-- mod-version:1 -- lite-xl 1.16 +local core = require "core" +local common = require "core.common" +local command = require "core.command" + +local fsutils = {} + +function fsutils.iterdir(dir) + local stack = { dir } + return function() + local path = table.remove(stack) + if not path then return end + + for _, file in ipairs(system.list_dir(path) or {}) do + stack[#stack + 1] = path .. PATHSEP .. file + end + + return path, system.get_file_info(path) + end +end + +function fsutils.delete(dir, yield) + local dirs = {} + local n = 0 + for filename, stat in fsutils.iterdir(dir) do + if stat.type == "dir" then + -- this will later allow us to delete the dirs in correct sequence + table.insert(dirs, filename) + else + os.remove(filename) + if yield then + n = n + 1 + coroutine.yield(n) + end + end + end + for i = #dirs, 1, -1 do + os.remove(dirs[i]) + if yield then + n = n + 1 + coroutine.yield(n) + end + end +end + +function fsutils.move(oldname, newname) + os.rename(oldname, newname) +end + +function fsutils.split(path) + local segments = {} + local pos = 1 + while true do + local s, e = string.find(path, "[/\\]+", pos) + if not s then break end + table.insert(segments, string.sub(path, pos, s - 1)) + pos = e + 1 + end + table.insert(list, string.sub(path, pos)) + + if segments[#segments] == '' then + table.remove(segments) + end + + return segments +end + +function fsutils.normalize(path) + return table.concat(fsutils.split(path), PATHSEP) +end + +function fsutils.normalize_posix(path) + return table.concat(fsutils.split(path), '/') +end + +function fsutils.mkdir(path) + local segments = fsutils.split(path) + if system.mkdir then + local p = "" + for i = 1, #segments do + p = table.concat(segments, PATHSEP, 1, i) + end + + if p == "" then + return nil, "path empty", p + end + + local stat = system.get_file_info(p) + if stat and stat.type == "file" then + return nil, "path exists as a file", p + end + local ok, err = system.mkdir(p) + if not ok then + return nil, err, p + end + else + -- just wing it lol + system.exec(string.format(PLATFORM == "Windows" and "setlocal enableextensions & mkdir %q" or "mkdir -p %q", fsutils.normalize(path))) + end +end + +local function async_exec(f, cb) + cb = cb or function() end + local co = coroutine.create(f) + local function resolve(...) + local ok, exec_body = coroutine.resume(co, ...) + if not ok then + error(debug.traceback(co, exec_body)) + end + if coroutine.status(co) ~= "dead" then + exec_body(resolve) + end + end + resolve(cb) +end + +local function prompt(text, suggest) + return coroutine.yield(function(resolve) + core.command_view:enter(text, resolve, suggest) + end) +end + +command.add(nil, { + ["files:delete"] = function() + async_exec(function() + local path = prompt("Delete", common.path_suggest) + + core.add_thread(function() + -- we use a wrapping coroutine to get status + local function delete() + return coroutine.wrap(function() fsutils.delete(path, true) end) + end + + for n in delete() do + if n % 100 == 0 then + core.log("Deleted %d items...", n) + coroutine.yield() + end + end + core.log("%q deleted.", path) + end) + end) + end, + ["files:move"] = function() + async_exec(function() + local oldname = prompt("Move", common.path_suggest) + local newname = prompt("To", common.path_suggest) + + fsutils.move(oldname, newname) + core.log("Moved %q to %q", oldname, newname) + end) + end +}) + +if not command.map["files:create-directory"] then + command.add(nil, { + ["files:create-directory"] = function() + async_exec(function() + local path = prompt("Name", common.path_suggest) + fsutils.mkdir(path) + core.log("%q created.", path) + end) + end + }) +end + +return fsutils \ No newline at end of file diff --git a/tools/editor/art/lite/data/plugins/gitstatus.lua b/tools/editor/art/lite/data/plugins/gitstatus.lua deleted file mode 100644 index b0b827c..0000000 --- a/tools/editor/art/lite/data/plugins/gitstatus.lua +++ /dev/null @@ -1,68 +0,0 @@ -local core = require "core" -local config = require "core.config" -local style = require "core.style" -local StatusView = require "core.statusview" - - -local git = { - branch = nil, - inserts = 0, - deletes = 0, -} - - -local function exec(cmd, wait) - local tempfile = core.temp_filename() - system.exec(string.format("%s > %q", cmd, tempfile)) - coroutine.yield(wait) - local fp = io.open(tempfile) - local res = fp:read("*a") - fp:close() - os.remove(tempfile) - return res -end - - -core.add_thread(function() - while true do - if system.get_file_info(".git") then - -- get branch name - git.branch = exec("git rev-parse --abbrev-ref HEAD", 1):match("[^\n]*") - - -- get diff - local line = exec("git diff --stat", 1):match("[^\n]*%s*$") - git.inserts = tonumber(line:match("(%d+) ins")) or 0 - git.deletes = tonumber(line:match("(%d+) del")) or 0 - - else - git.branch = nil - end - - coroutine.yield(config.project_scan_rate) - end -end) - - -local get_items = StatusView.get_items - -function StatusView:get_items() - if not git.branch then - return get_items(self) - end - local left, right = get_items(self) - - local t = { - style.dim, self.separator, - (git.inserts ~= 0 or git.deletes ~= 0) and style.accent or style.text, - git.branch, - style.dim, " ", - git.inserts ~= 0 and style.accent or style.text, "+", git.inserts, - style.dim, " / ", - git.deletes ~= 0 and style.accent or style.text, "-", git.deletes, - } - for _, item in ipairs(t) do - table.insert(right, item) - end - - return left, right -end diff --git a/tools/editor/art/lite/data/plugins/motiontrail.lua b/tools/editor/art/lite/data/plugins/motiontrail.lua index e688e1b..de343de 100644 --- a/tools/editor/art/lite/data/plugins/motiontrail.lua +++ b/tools/editor/art/lite/data/plugins/motiontrail.lua @@ -1,25 +1,31 @@ local core = require "core" local config = require "core.config" local style = require "core.style" +local Doc = require "core.doc" local DocView = require "core.docview" -config.motiontrail_steps = 50 +config.motiontrail_steps = config.motiontrail_steps or 50 +local function doc() + return core.active_view.doc +end local function lerp(a, b, t) return a + (b - a) * t end -local function get_caret_rect(dv) - local line, col = dv.doc:get_selection() - local x, y = dv:get_line_screen_position(line) - x = x + dv:get_col_x_offset(line, col) - return x, y, style.caret_width, dv:get_line_height() +local function get_caret_rect(dv, idx) + local line1, col1, line2, col2 = doc():get_selection_idx(idx) + local x1, y1 = dv:get_line_screen_position(line1) + x1 = x1 + dv:get_col_x_offset(line1, col1) + return x1, y1, style.caret_width, dv:get_line_height() end -local last_x, last_y, last_view +local last_x = {} +local last_y = {} +local last_view = {} local draw = DocView.draw @@ -27,20 +33,24 @@ function DocView:draw(...) draw(self, ...) if self ~= core.active_view then return end - local x, y, w, h = get_caret_rect(self) + for idx, line1, col1, line2, col2 in doc():get_selections(true, true) do + --if line1 == line2 and col1 == col2 then return false end - if last_view == self and (x ~= last_x or y ~= last_y) then - local lx = x - for i = 0, 1, 1 / config.motiontrail_steps do - local ix = lerp(x, last_x, i) - local iy = lerp(y, last_y, i) - local iw = math.max(w, math.ceil(math.abs(ix - lx))) - renderer.draw_rect(ix, iy, iw, h, style.caret) - lx = ix + local x, y, w, h = get_caret_rect(self, idx) + + if last_view[idx] == self and (x ~= last_x[idx] or y ~= last_y[idx]) then + local lx = x + for i = 0, 1, 1 / config.motiontrail_steps do + local ix = lerp(x, last_x[idx], i) + local iy = lerp(y, last_y[idx], i) + local iw = math.max(w, math.ceil(math.abs(ix - lx))) + renderer.draw_rect(ix, iy, iw, h, style.caret) + lx = ix + end + core.redraw = true end - core.redraw = true - end - last_view, last_x, last_y = self, x, y + last_view[idx], last_x[idx], last_y[idx] = self, x, y + end end diff --git a/tools/editor/art/lite/data/plugins/sort.lua b/tools/editor/art/lite/data/plugins/sort.lua new file mode 100644 index 0000000..482475e --- /dev/null +++ b/tools/editor/art/lite/data/plugins/sort.lua @@ -0,0 +1,30 @@ +-- mod-version:2 -- lite-xl 2.0 +local core = require "core" +local command = require "core.command" +local translate = require "core.doc.translate" + +local function split_lines(text) + local res = {} + for line in (text .. "\n"):gmatch("(.-)\n") do + table.insert(res, line) + end + return res +end + +command.add("core.docview", { + ["sort:sort"] = function() + local doc = core.active_view.doc + + local l1, c1, l2, c2, swap = doc:get_selection(true) + l1, c1 = translate.start_of_line(doc, l1, c1) + l2, c2 = translate.end_of_line(doc, l2, c2) + doc:set_selection(l1, c1, l2, c2, swap) + + doc:replace(function(text) + local head, body, foot = text:match("(\n*)(.-)(\n*)$") + local lines = split_lines(body) + table.sort(lines, function(a, b) return a:lower() < b:lower() end) + return head .. table.concat(lines, "\n") .. foot + end) + end, +}) diff --git a/tools/editor/art/lite/data/plugins/todotreeview.lua b/tools/editor/art/lite/data/plugins/todotreeview.lua new file mode 100644 index 0000000..60a37a7 --- /dev/null +++ b/tools/editor/art/lite/data/plugins/todotreeview.lua @@ -0,0 +1,389 @@ +local core = require "core" +local common = require "core.common" +local command = require "core.command" +local config = require "core.config" +local keymap = require "core.keymap" +local style = require "core.style" +local View = require "core.view" + + +local TodoTreeView = View:extend() + +config.todo_tags = { --"TODO", "BUG", "FIX", "FIXME", "IMPROVEMENT", + "@todo", "@fixme", "@testme", "@leak" } --< @r-lyeh + +-- Paths or files to be ignored +config.todo_ignore_paths = { + "tools/tcc", --< @r-lyeh + "tools\\tcc", --< @r-lyeh + "engine/fwk", --< @r-lyeh + "engine\\fwk", --< @r-lyeh + "engine/joint", --< @r-lyeh + "engine\\joint", --< @r-lyeh +} + +-- 'tag' mode can be used to group the todos by tags +-- 'file' mode can be used to group the todos by files +config.todo_mode = "tag" + +-- Tells if the plugin should start with the nodes expanded. default: true for tag mode +config.todo_expanded = config.todo_mode == "tag" + +-- list of allowed extensions: items must start and end with a dot character +config.todo_allowed_extensions = '.h.c.m.hh.cc.hpp.cpp.cxx.lua.py.cs.vs.fs.bat.' --< @r-lyeh + +-- whether the sidebar treeview is initially visible or not +config.todo_visible = false + + +function TodoTreeView:new() + TodoTreeView.super.new(self) + self.scrollable = true + self.focusable = false + self.visible = config.todo_visible + self.times_cache = {} + self.cache = {} + self.cache_updated = false + self.init_size = true + + -- Items are generated from cache according to the mode + self.items = {} +end + +local function is_file_ignored(filename) + for _, path in ipairs(config.todo_ignore_paths) do + local s, _ = filename:find(path) + if s then + return true + end + end + + return false +end + +function TodoTreeView:refresh_cache() + local items = {} + if not next(self.items) then + items = self.items + end + self.updating_cache = true + + core.add_thread(function() + for _, item in ipairs(core.project_files) do + local ignored = is_file_ignored(item.filename) + if not ignored and item.type == "file" then + local cached = self:get_cached(item) + + if config.todo_mode == "file" then + items[cached.filename] = cached + else + for _, todo in ipairs(cached.todos) do + local tag = todo.tag + if not items[tag] then + local t = {} + t.expanded = config.todo_expanded + t.type = "group" + t.todos = {} + t.tag = tag + items[tag] = t + end + + table.insert(items[tag].todos, todo) + end + end + end + end + + -- Copy expanded from old items + if config.todo_mode == "tag" and next(self.items) then + for tag, data in pairs(self.items) do + if items[tag] then + items[tag].expanded = data.expanded + end + end + end + + self.items = items + core.redraw = true + self.cache_updated = true + self.updating_cache = false + end, self) +end + + +local function find_file_todos(t, filename) + --< @r-lyeh + local ext = (filename:match "[^.]+$") .. '.' + if not string.find(config.todo_allowed_extensions,ext) then + return + end + --< + + local fp = io.open(filename) + if not fp then return t end + + --< @r-lyeh: optimized loops: early exit if quicksearch fails + local function lines(str) + local result = {} + for line in string.gmatch(str, "(.-)%c") do -- line in str:gmatch '[^\n]+' do + -- Add spaces at the start and end of line so the pattern will pick + -- tags at the start and at the end of lines + table.insert(result, " "..line.." ") + end + return result + end + local before = #t + local content = fp:read("*all") + for _, todo_tag in ipairs(config.todo_tags) do + if string.find(content, todo_tag) then + local n = 0 + for _, line in ipairs(lines(content)) do + n = n + 1 + local match_str = todo_tag[1] == '@' and todo_tag or "[^a-zA-Z_\"'`]"..todo_tag.."[^a-zA-Z_\"'`]+" + local s, e = line:find(match_str) + if s then + local d = {} + d.tag = string.sub(string.upper(todo_tag), todo_tag:byte(1) == 64 and 2 or 1) .. 's' + d.filename = filename + d.text = line:sub(e+1) + if d.text == "" then + d.text = config.todo_mode == "tag" and filename:match("^.+[/\\](.+)$") or "blank" + end + d.line = n + d.col = s + table.insert(t, d) + end + end + end + end + fp:close() + if #t ~= before then + coroutine.yield() + core.redraw = true + end + --< +end + + +function TodoTreeView:get_cached(item) + local t = self.cache[item.filename] + if not t then + t = {} + t.expanded = config.todo_expanded + t.filename = item.filename + t.abs_filename = system.absolute_path(item.filename) + t.type = item.type + t.todos = {} + find_file_todos(t.todos, t.filename) + self.cache[t.filename] = t + end + return t +end + + +function TodoTreeView:get_name() + return "Todo Tree" +end + + +function TodoTreeView:get_item_height() + return style.font:get_height() + style.padding.y +end + + +function TodoTreeView:get_cached_time(doc) + local t = self.times_cache[doc] + if not t then + local info = system.get_file_info(doc.filename) + if not info then return nil end + self.times_cache[doc] = info.modified + end + return t +end + + +function TodoTreeView:check_cache() + for _, doc in ipairs(core.docs) do + if doc.filename then + local info = system.get_file_info(doc.filename) + local cached = self:get_cached_time(doc) + if not info and cached then + -- document deleted + self.times_cache[doc] = nil + self.cache[doc.filename] = nil + self.cache_updated = false + elseif cached and cached ~= info.modified then + -- document modified + self.times_cache[doc] = info.modified + self.cache[doc.filename] = nil + self.cache_updated = false + end + end + end + + if core.project_files ~= self.last_project_files then + self.last_project_files = core.project_files + self.cache_updated = false + end +end + +function TodoTreeView:each_item() + self:check_cache() + if not self.updating_cache and not self.cache_updated then + self:refresh_cache() + end + + return coroutine.wrap(function() + local ox, oy = self:get_content_offset() + local y = oy + style.padding.y + local w = self.size.x + local h = self:get_item_height() + + for _, item in pairs(self.items) do + if #item.todos > 0 then + coroutine.yield(item, ox, y, w, h) + y = y + h + + for _, todo in ipairs(item.todos) do + if item.expanded then + coroutine.yield(todo, ox, y, w, h) + y = y + h + end + end + end + end + end) +end + + +function TodoTreeView:on_mouse_moved(px, py) + self.hovered_item = nil + for item, x,y,w,h in self:each_item() do + if px > x and py > y and px <= x + w and py <= y + h then + self.hovered_item = item + break + end + end +end + + +function TodoTreeView:on_mouse_pressed(button, x, y) + if not self.hovered_item then + return + elseif self.hovered_item.type == "file" + or self.hovered_item.type == "group" then + self.hovered_item.expanded = not self.hovered_item.expanded + else + core.try(function() + local i = self.hovered_item + local dv = core.root_view:open_doc(core.open_doc(i.filename)) + core.root_view.root_node:update_layout() + dv.doc:set_selection(i.line, i.col) + dv:scroll_to_line(i.line, false, true) + end) + end +end + + +function TodoTreeView:update() + self.scroll.to.y = math.max(0, self.scroll.to.y) + + -- update width + local dest = self.visible and config.treeview_size or 0 + if self.init_size then + self.size.x = dest + self.init_size = false + else + self:move_towards(self.size, "x", dest) + end + + TodoTreeView.super.update(self) +end + + +function TodoTreeView:draw() + self:draw_background(style.background2) + + --local h = self:get_item_height() + local icon_width = style.icon_font:get_width("D") + local spacing = style.font:get_width(" ") * 2 + local root_depth = 0 + + for item, x,y,w,h in self:each_item() do + local color = style.text + + -- hovered item background + if item == self.hovered_item then + renderer.draw_rect(x, y, w, h, style.line_highlight) + color = style.accent + end + + -- icons + local item_depth = 0 + x = x + (item_depth - root_depth) * style.padding.x + style.padding.x + if item.type == "file" then + local icon1 = item.expanded and "-" or "+" + common.draw_text(style.icon_font, color, icon1, nil, x, y, 0, h) + x = x + style.padding.x + common.draw_text(style.icon_font, color, "f", nil, x, y, 0, h) + x = x + icon_width + elseif item.type == "group" then + local icon1 = item.expanded and "-" or "+" + common.draw_text(style.icon_font, color, icon1, nil, x, y, 0, h) + x = x + icon_width / 2 + else + if config.todo_mode == "tag" then + x = x + style.padding.x + else + x = x + style.padding.x * 1.5 + end + common.draw_text(style.icon_font, color, "i", nil, x, y, 0, h) + x = x + icon_width + end + + -- text + x = x + spacing + if item.type == "file" then + common.draw_text(style.font, color, item.filename, nil, x, y, 0, h) + elseif item.type == "group" then + common.draw_text(style.font, color, item.tag, nil, x, y, 0, h) + else + if config.todo_mode == "file" then + common.draw_text(style.font, color, item.tag.." - "..item.text, nil, x, y, 0, h) + else + common.draw_text(style.font, color, item.text, nil, x, y, 0, h) + end + end + end +end + + +-- init +local view = TodoTreeView() +local node = core.root_view:get_active_node() +view.size.x = config.treeview_size +node:split("right", view, true) + +-- register commands and keymap +command.add(nil, { + ["todotreeview:toggle"] = function() + view.visible = not view.visible + end, + + ["todotreeview:expand-items"] = function() + for _, item in pairs(view.items) do + item.expanded = true + end + end, + + ["todotreeview:hide-items"] = function() + for _, item in pairs(view.items) do + item.expanded = false + end + end, +}) + +keymap.add { ["ctrl+shift+t"] = "todotreeview:toggle" } +keymap.add { ["ctrl+shift+e"] = "todotreeview:expand-items" } +keymap.add { ["ctrl+shift+h"] = "todotreeview:hide-items" } + diff --git a/tools/editor/art/lite/data/plugins/treeview.lua b/tools/editor/art/lite/data/plugins/treeview.lua index 701d5d3..9927ac4 100644 --- a/tools/editor/art/lite/data/plugins/treeview.lua +++ b/tools/editor/art/lite/data/plugins/treeview.lua @@ -22,7 +22,7 @@ local TreeView = View:extend() function TreeView:new() TreeView.super.new(self) self.scrollable = true - self.visible = true + self.visible = false --< @r-lyeh true>false self.init_size = true self.cache = {} end @@ -185,7 +185,7 @@ end -- init local view = TreeView() local node = core.root_view:get_active_node() -node:split("left", view, true) --< @r-lyeh true > false allows resizable treeview +node:split("left", view, true) -- register commands and keymap command.add(nil, { @@ -195,3 +195,100 @@ command.add(nil, { }) keymap.add { ["ctrl+t"] = "treeview:toggle" } --< @r-lyeh ctrl+// > ctrl+t + +-- register some context menu items, if available +local has_menu, menu = core.try(require, "plugins.contextmenu") +local has_fsutils, fsutils = core.try(require, "plugins.fsutils") + +if has_menu and has_fsutils then + local function new_file_f(path) + command.perform "core:new-doc" + end + + local function new_file() + new_file_f(view.hovered_item.abs_filename) + end + + local function new_dir_f(path) + core.command_view:enter("New directory name", function(dir) + fsutils.mkdir(dir) + end) + core.command_view:set_text(path .. PATHSEP .. "New folder") + end + + local function new_dir() + new_dir_f(view.hovered_item.abs_filename) + end + + local function delete_f(path) + core.add_thread(function() + local function wrap() + return coroutine.wrap(function() fsutils.delete(path, true) end) + end + + for n in wrap() do + if n % 100 == 0 then + core.log("Deleted %d items.", n) + coroutine.yield(0) + end + end + + core.log("%q deleted.", path) + end) + end + + local function delete() + local path = view.hovered_item.abs_filename + if view.hovered_item.type == "dir" + and system.show_confirm_dialog("Delete confirmation", string.format("Do you really want to delete %q ?", path)) then + delete_f(path) + else + delete_f(path) + end + end + + local function dirname(path) + local p = fsutils.split(path) + table.remove(p) + return table.concat(p, PATHSEP) + end + + local function rename() + local oldname = view.hovered_item.abs_filename + core.command_view:enter("Rename to", function(newname) + fsutils.move(oldname, newname) + core.log("Moved %q to %q", oldname, newname) + end, common.path_suggest) + core.command_view:set_text(dirname(oldname)) + end + + local function copy_path() + system.set_clipboard(view.hovered_item.abs_filename) + end + + menu:register(function() return view.hovered_item and view.hovered_item.type == "dir" end, { + { text = "New file", command = new_file }, + { text = "New folder", command = new_dir }, + menu.DIVIDER, + { text = "Rename", command = rename }, + { text = "Delete", command = delete }, + menu.DIVIDER, + { text = "Copy directory name", command = copy_path } + }) + menu:register(function() return view.hovered_item and view.hovered_item.type == "file" end, { + { text = "Rename", command = rename }, + { text = "Delete", command = delete }, + menu.DIVIDER, + { text = "Copy filename", command = copy_path } + }) + -- general region of the treeview + menu:register(function(x, y) + local x1, y1, x2, y2 = view:get_content_bounds() + return not view.hovered_item and x > x1 and x <= x2 and y > y1 and y <= y2 + end, { + { text = "New file", command = function() new_file_f(system.absolute_path('.')) end }, + { text = "New folder", command = function() new_dir_f(system.absolute_path('.')) end } + }) +end + +return view --< @r-lyeh diff --git a/tools/editor/editor b/tools/editor/editor deleted file mode 100644 index 6122a69..0000000 --- a/tools/editor/editor +++ /dev/null @@ -1,82 +0,0 @@ -#ifdef ICON -// 2 states -ICON(DONE),ICON(DONE_ALL), -ICON(CHECK_BOX),ICON(CHECK_BOX_OUTLINE_BLANK), -ICON(VISIBILITY),ICON(VISIBILITY_OFF), -ICON(NOTIFICATIONS),ICON(NOTIFICATIONS_OFF), - -ICON(TOGGLE_ON),ICON(TOGGLE_OFF), -ICON(LIGHTBULB),ICON(LIGHTBULB_OUTLINE), -ICON(FULLSCREEN),ICON(FULLSCREEN_EXIT), -ICON(VIDEOCAM),ICON(VIDEOCAM_OFF), - -ICON(FIBER_MANUAL_RECORD),ICON(FIBER_SMART_RECORD), -ICON(EXPAND_MORE),ICON(EXPAND_LESS), -ICON(SPORTS_ESPORTS),ICON(VIDEOGAME_ASSET),ICON(GAMEPAD),//ICON(STADIA_CONTROLLER), -ICON(FILE_DOWNLOAD),ICON(FILE_UPLOAD), - -// 3 states -ICON(FOLDER_OPEN),ICON(CREATE_NEW_FOLDER),ICON(FOLDER_SPECIAL), -ICON(CONTENT_CUT),ICON(CONTENT_COPY),ICON(CONTENT_PASTE), -ICON(STAR),ICON(STAR_HALF),ICON(STAR_OUTLINE), -ICON(VOLUME_DOWN),ICON(VOLUME_UP),ICON(VOLUME_OFF), - -// 6 states -ICON(FAST_REWIND),ICON(SKIP_PREVIOUS),ICON(PLAY_ARROW),ICON(SKIP_NEXT),ICON(FAST_FORWARD),ICON(REPEAT), - -// 12 states -ICON(POWER),ICON(BATTERY_CHARGING_FULL),ICON(BATTERY_FULL),ICON(BATTERY_6_BAR),ICON(BATTERY_5_BAR),ICON(BATTERY_4_BAR),ICON(BATTERY_3_BAR),ICON(BATTERY_2_BAR),ICON(BATTERY_1_BAR),ICON(BATTERY_0_BAR),ICON(BATTERY_ALERT), - - -ICON(MOVIE), -ICON(CAMERA),ICON(PHOTO_CAMERA), -ICON(SPEED), -ICON(ROOM), -ICON(PUSH_PIN), -ICON(FLAG), - -ICON(G_TRANSLATE), -ICON(SETTINGS), -ICON(CLOSED_CAPTION), - -ICON(BUILD), -ICON(ROCKET_LAUNCH), - -ICON(TODAY),ICON(EVENT_NOTE), - -ICON(3D_ROTATION), -ICON(LAUNCH), -ICON(SEARCH), -ICON(TIMELAPSE), -ICON(ARROW_DOWNWARD), -ICON(CALL_MERGE), -ICON(ARCHIVE), -ICON(SHOW_CHART), -ICON(WARNING), -ICON(CREATE),ICON(ADD), - -ICON(TEXT_FORMAT), -ICON(CHECK), -ICON(SAVE), -ICON(CANCEL), -ICON(DELETE), -ICON(CLOSE), -ICON(REFRESH), -ICON(SYNC), -ICON(HIGHLIGHT_OFF), -ICON(SYSTEM_UPDATE), -ICON(UNDO),ICON(REDO), -ICON(CLASS), -ICON(TITLE), -ICON(HD), - -ICON(VIEW_QUILT), - -ICON(FINGERPRINT), -ICON(VPN_KEY), -ICON(FACE),ICON(PERSON), -ICON(CHAT_BUBBLE), - -ICON(COPYRIGHT), -#undef ICON -#endif diff --git a/tools/editor/editor.c b/tools/editor/editor.c index 149909a..c92f010 100644 --- a/tools/editor/editor.c +++ b/tools/editor/editor.c @@ -1,1836 +1,409 @@ -// in-game editor -// - rlyeh, public domain. - -// ## Design -// ### editor (v1) -// The v1 editor is a tool that understands Assets and is able to *edit the details of such Assets*. -// This understanding is configured via reflection fields in .ini files. Can be reflected from C as well. -// The reflected properties will enable loading, saving and creating generic widget views to edit the Assets. -// Because we load and save the state of Assets, we can also undo and redo changes by simulating load/saves from/into memory. -// And we can also dump the contents into disk, and create diffs and patches from them. -// - [x] Load Assets -// - [x] Edit Assets -// - [x] Save Assets -// - [x] Undo Assets (automatic, via loading older state) -// - [x] Redo Assets (automatic, via loading newer state) -// - [x] Diff Assets (from two states) -// - [x] Mend Assets (from two states) -// -// Note that the editor is dumb and does not tick/draw your GameObjects. It does not handle the Scene/World either. -// Those are game-driven systems. Your game should provide the meanings to actually: -// - [?] Spawn Assets -// - [?] Delete Assets -// - [x] Draw Assets -// - [x] Tick Assets -// - [*] Scene Traversals (parent->children*, visibility, collisions and such) -// -// PS: Asset pipeline is external to the editor. Exotic assets could use some fancy plugins to deal with the import/export; eg, Substance 3D. -// PS: Asset versioning is also external to the editor. We could integrate a few VCS plugins within the editor: p4, git, svn, ... -// -// ### editor (v2) -// The v2 editor adds container support and modding features from previous editor. -// -// Your game could use fancy containers everywhere now. However, for simplicity purposes, Editor would be ignorant about them as well. -// Editor can only use containers that can decay to vectors and strides. Examples: -// - [x] Vectors: already supported in the Editor. -// - [?] Arrays: can decay to a fixed/immutable vector. -// - [?] Sparse/Unordered/Ordered Sets: can decay to vector of values. -// - [?] Sparse/Unordered/Ordered Maps: can decay to vector of keys + vector of values. -// - [?] Other fancy containers: can iterate on elements and send each item to editor individually; might be slow. -// -// We also allow here for others to extend or *override the behavior and look of each window and/or widget* by using .lua and .dll plugins: -// - [ ] Draw Windows --> Custom overrides to alter or enhance the renderer while editing. Via C/C++/dll/lua plugins -// - [ ] Tick Windows --> Custom overrides to alter or enhance the behavior while editing. Via C/C++/dll/lua plugins -// -// ### editor (v3) -// v3 brings in data driven control; ie, be able to parse & interpret text commands from any input stream. -// This would allow for remote control (via OSC), extending scripts, offline commands, Telnet sessions or external tools; like GDB does. -// - [ ] Data driven -// -// The v3 editor is also a bootstrapped v2 editor with tons of .luas. The C skeleton is only a window manager at this point. -// The intention here is to *leverage editing workflow purely into data-driven files*, so the engine can grow up exponentially from here. -// Data-driven on steroids. It would be totally a success if the editor could be bootstrapped to include these kind of sub-editors without much work on the C codebase: -// - [ ] Level 2D/Blockout editor -// - [ ] Level 3D/Blockout editor -// - [*] World outliner -// - [ ] Nodegraph editor (ShaderGraph, AnimGraph, AudioGraph, MaterialGraph, DialogGraph, AIGraph, QuestGraph, ...) -// - [ ] Sequencer -// - [ ] Tracker (music tracker) -// - [ ] Etc... -// -// ### editor (v4) -// Bring in remote datas into the editor. -// Go social & marketplace. Allow others to expand, share, publish, subscribe, discuss their sub-editors within a small community. -// I really like the way the way OpenFrameworks.cc does their addons, and I think we should do same: just discover and monitor github repos, and list everything on a website (v4k- prefix?). -// Wishlist for a github-based community flow: discovery, transparent installs, publish on github, star there, watch commits & releases, track issues+discussions, etc -// -// We should have a generic, extensible, script/plugin-driven, working editor at this point (hopefully) that does not require maintenance. - -// ## Roadmaps -// ### v1 roadmap (current) -// - [*] menu: open, save, save as, save all, reload -// - [x] basic gizmos (@todo: fixed screen size, snapping) -// - [ ] add/rem entities, add/rem components, add/rem/pause/resume systems -// - [ ] cut/copy/paste (ctrl-c to serialize) -// - [ ] F1, detach from game (long press will send F1 key to game) -// - [ ] TAB, isolated view of selected entity on/off. (long press will send TAB key to game) -// - [ ] standardise binary format. msgpack(<->json)? go .ini instead? .ini+blob? .kvdb? -// - [*] object processing from game: tick,draw*,spawn,delete,un/load from bvh stream, -// - [ ] cut/copy/paste <--> add/del events into game (ctrl-c to serialize) -// - [x] multiple selections/select all -// - [x] tree traversal from game (parent->child) -// - [ ] operations on trees: load/save -> as filesystem or .zipped level -// -// ### v2 roadmap (mid-term) -// - [ ] add keyboard shortcuts -// - [ ] tree traversal from game -// - [ ] bvh and collision queries -// - [ ] visibility and pvs queries -// - [ ] art/ vs prefabs/ discrimination: prefabs/ are archetypes (composed types); ie, data-classes. art/ contains data files. -// - [ ] can prefabs be done with ecs maybe? -// - [ ] example: levels are prefabs, composed of other sub-prefabs or art assets. -// - [ ] example: hitboxes+events. girl=pivot(p,r,s)+model(mesh,tex)+curframe -// - [ ] extend widgets vec3 as range;customized mesh,texture,audio,any other asset,combo of anything) -// -// ### v3 roadmap (long-term) -// ### v4 roadmap (long-term) -// - [ ] osc server for properties and editor behavior -// - -// ## Implementation ideas -// ### editor -// - [x] editor = tree of nodes. world, levels and objects are nodes, and even widgets are also nodes. -// - [ ] you can perform actions on some or all of these nodes, with or without descendants, from any top-bottom or bottom-top directions. -// - [ ] these actions include load/save, reset, undo/redo, play/render, toggle vis:on/off/alpha logic:on/off/other ddraw:on/off log:on/off, etc. -// and that's all. -// -// ### organization: world as a filesystem -// - [ ] anything can be serialized into disk. any object, any entity, any property or any widget can be serialized into disk. -// - [ ] groups of them as well. the whole world state can be serialized into disk as a filesystem snapshot: -// - [ ] - entities are folders. you can attach nodes on nodes (ie, create folders inside folders). -// - [ ] - systems are dlls/scripts. you can modify them on the fly and they should reload. -// - [ ] - components are data files. each component is a file. some components may be pure datas (ie, raw textures) but some others can be human-readable and editable. -// inside of that, every line is a JSON/INI property that you can tweak, modify or inspect. -// -// ### replication: diffing zips -// - [ ] the whole world/filesystem will be compressed into a zipfile and delivered to the network when sharding/replicating in a network scenario. -// - [ ] clients will be diffing/patching their filesystems on every received packet. there will be 3 operations to support internally that will reflect what the E/C/S world is doing behind the curtains: -// - [ ] - added files/folders [+] : when creating entities/components/systems -// - [ ] - deleted files/folders [-] : when removing entities/components/systems -// - [ ] - modifying files/folders [*] : when altering entities/components/systems -// -// ### communication: osc messages -// - [ ] any living entity in the game, or within the editor, can be inspected, debugged or tweaked from external tools. -// - [ ] in order to achieve that, an opensoundserver is listening on a binding IP and you can send UDP packets to every node in the world. -// - [ ] the UDP port number matches current year (2021, 2022, 2023...) -// -// ### augmentation: widgets escalate from bottom -// - [x] there are only a few basic supplied widgets. -// - [x] and they correlate to C types: bool, u/int 8/16/32/64, float/double, strings and enums. -// - [x] structs are covered by reflecting and editing all members separately. -// - [ ] optionally, you can extend some basic types to have better visualization widgets. -// ie, you could alias x4 float widgets together into a new shiny vec4 widget that is more compact, fancy and convenient to use. -// then you can also alias that very same vec4 into a color picker for example; or maybe convert that vec3 into a position gizmo. -// then maybe alias x2 color pickers and create a gradient widget. and so on... - -// ## old notes below -// ================== -// - [ ] editor (json level): load/save jsons, property editor for anything (remote osc server/client) -// - gizmo: proportional, orbit/arcball XY (+shift for Z/tilt) -// - scene: scenegraph, obj naming, ~~obj picking, obj bounds,~~ obj collisions, obj/scene streaming -// - placeholders google -// - vcs -// - [ ] Level objects: ~~volumes, triggers, platforms, streaming~~. -// - level: emitters: particles, lights, lightmaps, sound sources, triggers, etc -// - level: box triggers, start/end, spawn, streaming, checkpoints, -// - level: jump, shoots, platforms, collisions -// - level: 60s, 70s, 80s, 90s -// - [ ] Core: wecs+replication -// - modules: script or dll + ram load/save/diff/patch + play/stop/init/ + attach/detach -// - logic tree/ << [] |> || >> -// - - scene |> -// - - enemies -// - ecs: sys are modules, ecs: char *messaging, ecs: filesystem (e/dir,c/files,s/dll) -// - world: streaming, migration - +#define COOK_ON_DEMAND 1 // @fixme: these directives should be on client, not within v4k.dll +#define ENABLE_AUTOTESTS 1 +#define V4K_IMPLEMENTATION #include "v4k.h" +#include "objtests.h" -// #include "labs.vm/ecs.c" +// ---------------------------------------------------------------------------- -#define EDITOR_VERSION "2022.7" +TODO("file_id: glow.hdr vs glow.png"); +TODO("reflect: iterate components+metas on REFLECT too, so they're properly saved/loaded"); -#if 1 -#define EDITOR_PRINTF PRINTF -#else -#define EDITOR_PRINTF(...) do {} while(0) +TODO("edit: tree nav"); +TODO("edit: keys up,down,left,right -> move selection"); +TODO("edit: reordering/dragging items on a list. ctrl+cursors"); +TODO("edit: tab -> cycle next node of matching highlighted type"); +TODO("edit: ^C^V^X thru clipboard. ^C to serialize to clipboard."); +TODO("edit: ^Z^Y cursor too. also fix undo ordering"); +TODO("edit: ^S^L^N. load/save as filesystems"); +TODO("edit: ^B(toolbar)"); +TODO("edit: ^E prop single-view for multiple selections: should inspect common fields only"); +TODO("edit: two-column way (or Nth) for multiple selections"); +TODO("edit: tab/caps view, world + entity only, obj printf"); +TODO("edit: obj bounds, obj picking, obj collisions"); +TODO("edit: LMB object picking, RMB object serialization + log, floating ICONS bulb light"); +TODO("edit: worldtraveller component"); +TODO("edit: levelstreamer component"); +TODO("edit: OSC server/client port 2023"); +TODO("edit: add/rem entities, add/rem components, add/rem/pause/resume systems"); +TODO("edit: event loop: tick,draw*,spawn,delete,un/load from bvh stream,"); + +TODO("edit: overlay scene editor"); +TODO("edit: overlay0 artwork"); +TODO("edit: overlay1 world editor: gizmo, grid, snap, splats (@todo: fixed screen size gizmos)"); +TODO("edit: overlay2 script editor"); +TODO("edit: overlay3 track, spline, keys editor"); +TODO("edit: overlay4 node editor (shader/anim/bt/hfsm/material/audio/blueprints)"); +TODO("edit: overlay5 csv editor"); +TODO("edit: overlay6 bug/task editor"); + +TODO("gfx: tree traversal from game"); +TODO("gfx: bvh and collision queries"); +TODO("gfx: visibility and pvs queries"); + +TODO("obj: finish SYSTEMS and join queries"); +TODO("obj: make it work with /GL flag (VC)"); +TODO("obj: impl obj_mutate() ... deprecate?"); +TODO("obj: make() from mpack(m) + native(n)"); +TODO("obj: make() should save schema `[{mn`+version. and (m)pack and (n)ative should start with objtype"); +TODO("obj: super()"); +TODO("obj: lock()/trylock()/unlock()/barrier(N)"); +TODO("obj: diff()/patch()"); +TODO("obj: free obj_children()/payload"); +TODO("obj: free obj_components()/payload2"); + +TODO("pack: mp2json, json2mp"); +TODO("pack: simplify msgpack API, make it growth similar to va()") +#if 0 // v4k_pack proposal +static __thread char* mpin; +static __thread unsigned mpinlen; +static __thread char mpinbuf[256]; +static __thread char* mpout; +static __thread unsigned mpoutlen; +static __thread char mpoutbuf[256]; +#define PACKMSG(...) (msgpack_new(mpin = mpinbuf, mpinlen = sizeof(mpinbuf)), mpinlen = msgpack(__VA_ARGS__), cobs_encode(mpin, mpinlen, mpout = mpoutbuf, mpoutlen = cobs_bounds(mpinlen)), mpout) +#define UNPACKMSG(ptr,fmt,...) (mpin = (char*)ptr, mpinlen = strlen(ptr), mpout = mpoutbuf, mpoutlen = sizeof(mpoutbuf), mpoutlen = cobs_decode(mpin, mpinlen, mpout, mpoutlen), msgunpack_new(mpout, mpoutlen) && msgunpack(fmt, __VA_ARGS__)) #endif -// editor controls +#include "3rd_icon_mdi.h" +#include "v4k_editor.h" -//static int editor_attached = 1; -static int editor_enabled = 1; -static void* editor_selected_obj = 0; -static int editor_key = 0; -static vec2 editor_mouse = {0}; // 2d coord for ray/picking -static bool editor_gamepad = 1; -static int editor_hz = 60; -static int editor_hz_mid = 18; -static int editor_hz_low = 5; -static bool editor_power_saving = 0; -static double editor_t = 0, editor_dt = 0; -static bool editor_lit = 1; -static bool editor_ddraw = 1; - -static -void editor_init_variables() { -} - -bool editor_active() { - return ui_hover() || ui_active() || gizmo_active() ? editor_enabled : 0; -} -double editor_ss() { - return 1000 + editor_t; -} -double editor_delta() { - return editor_dt; -} - - -enum editor_keys { - key_none, - key_pause, - key_reload, - key_browser, - key_recording, - key_fullscreen, - key_screenshot, // @todo: add meta-info in exif or invisibile pixels (cam details, player details, map level, map location, level state, etc) - key_quit, - key_mute, - key_battery, - key_profiler, - key_stop, - key_outliner, - key_undo, - key_redo, - key_save_mem, - key_save_disk, - key_load_disk, - key_reset, - key_debugger, - key_gamepad, - key_lit, - key_ddraw, -}; - -// editor core - -typedef void* obj_t; -typedef array(obj_t) objs_t; - -typedef struct property { // meta: "vec3 namespace.position = {1,2,3}; // minv=(0,0,0) key1=value1 key2=value2 [...] @this is a tooltip @@this is a comment" - char *mark; // namespace - char *name; // display name - char *type; // pointed type - char *hint; // name@tooltip - char *minv; // min value - char *maxv; // max value -#if 0 // @todo: implement me - char *incv; // inc value - char *defv; // default value - char *isro; // is read-only/enabled - char *issv; // is save pending -#endif - void *value; - unsigned typebits; - unsigned flags; -} property; - - -// low-level operations -int save1(bool apply, array(char) *buffer, array(property) arrp) { - // iterate and save - unsigned total = 0; - for each_array_ptr(arrp, property, p) { - unsigned bytes = 0; - /**/ if( p->type[0] == 'f') bytes = sizeof(float); - else if( p->type[0] == 'v') bytes = sizeof(vec3); - else if( p->type[0] == 'i') bytes = sizeof(int); - else if( p->type[0] == 'b') bytes = sizeof(bool); - - if( !apply ) continue; - - if( bytes ) { - array_resize(*buffer, array_count(*buffer) + bytes); - memcpy( &(*buffer)[array_count(*buffer) - bytes], p->value, bytes); - total += bytes; - } - } - - EDITOR_PRINTF("%d bytes written\n", total); - return total; -} -int load1(bool apply, const char *buffer, unsigned buflen, array(property) arrp, unsigned skip_bytes) { - // iterate and load properties - unsigned cursor = 0, loaded = 0, limit = buflen; - - while( cursor <= skip_bytes ) - for each_array_ptr(arrp, property, p) { - unsigned bytes = 0; - /**/ if( p->type[0] == 'f') bytes = sizeof(float); - else if( p->type[0] == 'v') bytes = sizeof(vec3); - else if( p->type[0] == 'i') bytes = sizeof(int); - else if( p->type[0] == 'b') bytes = sizeof(bool); - - if( (cursor + bytes) > limit ) { - return -1; - } - - if( apply && cursor >= skip_bytes ) { - memcpy( p->value, &buffer[cursor], bytes); - loaded += bytes; - } - - cursor += bytes; - } - - EDITOR_PRINTF("%d bytes read, %d bytes loaded\n", cursor, loaded); - return cursor; -} - -int diff1( array(char) src, array(char) dst, array(char) *patch ) { // @testme - int slen = array_count(src); - int dlen = array_count(dst); - if( dlen != slen ) return -1; - - for( int i = 0; i < slen; ++i ) { - int diff = dst[i] - src[i]; - array_push(*patch, (char)diff); - } - - EDITOR_PRINTF("%d bytes diff\n", slen); - return slen; -} - -int patch1( array(char) src, array(char) dst, array(char) patch ) { // @testme - int slen = array_count(src); - int dlen = array_count(dst); - if( dlen != slen ) return -1; - - int plen = array_count(patch); - if( plen != dlen ) return -1; - - for( int i = 0; i < plen; ++i ) { - dst[i] += patch[i]; - } - - EDITOR_PRINTF("%d bytes patched\n", plen); - return plen; -} - -// syntax sugars for collections/containers -// #define bulk_load(obj_min,obj_max,objs,...) for( unsigned i = 0; i < array_count(objs); ++i ) { bool apply = obj_min >= i && i < obj_max; load1(apply, objs[i], __VA_ARGS__); } -// #define bulk_save(obj_min,obj_max,objs,...) for( unsigned i = 0; i < array_count(objs); ++i ) { bool apply = obj_min >= i && i < obj_max; save1(apply, objs[i], __VA_ARGS__); } - - -// state - retained mode - -typedef struct editor_state_t { - array(property) properties; - array(char) buffer; - array(vec2i) history; - unsigned cursor; -} editor_state_t; - -typedef map(char*, char*) editor_dict_t; - -typedef struct editor_call_t { - void* (*call)(); - unsigned bound; - void *vargs[4]; -} editor_call_t; - -typedef struct editor_module_t { - enum { - fn_init, - fn_load, - fn_tick, - fn_draw, - fn_aabb, // hitboxes - fn_debug, // call for debug ui (like loggers and sliders) - fn_save, - fn_quit, - - fn_num_, - } dummy; - - editor_call_t methods[fn_num_]; - -} editor_module_t; - -static map(void*, editor_state_t) editor_state; // world -static map(void*, array(void*)) editor_children; // groups for stacking, bvh and visibility -static map(void*, array(void*)) editor_children_tick; // groups for ticking -static map(void*, array(void*)) editor_children_draw; // groups for drawing -static map(void*, editor_module_t) editor_module; -static map(void*, editor_dict_t) editor_dicts; -static set(void*) editor_world; -static set(void*) editor_selection; // objects selected in scene - -void editor_init_states() { - do_once map_init_ptr(editor_state); - do_once map_init_ptr(editor_module); - do_once map_init_ptr(editor_children); - do_once map_init_ptr(editor_children_tick); - do_once map_init_ptr(editor_children_draw); - do_once map_init_ptr(editor_dicts); - do_once set_init_ptr(editor_world); - do_once set_init_ptr(editor_selection); -} - -// handle selection - -void editor_select(void *obj, bool multi) { - do_once editor_init_states(); - - editor_selected_obj = NULL; - - if(!multi) { - set_clear(editor_selection); - if( obj ) set_find_or_add(editor_selection, editor_selected_obj = obj); - } else { - if( !obj ) return; - bool on = !!set_find(editor_selection, obj); - if(on) set_erase(editor_selection, obj); - else set_find_or_add(editor_selection, editor_selected_obj = obj); - } -} -bool editor_is_selected(void *obj) { - do_once editor_init_states(); - - return !!set_find(editor_selection, obj); -} -void editor_select_none(void) { - editor_select(NULL, false); -} -void editor_select_all(void) { - editor_select_none(); - for each_set_ptr(editor_world, void*, o) { - void *obj = *o; - editor_select(obj, true); - } -} - -// obj/scene: load/save, undo/redo, - -bool editor_clear_redo(void *obj) { - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - if( ed->cursor >= array_count(ed->history) ) - return false; - - array_resize(ed->buffer, ed->history[ed->cursor].to); - array_resize(ed->history, ed->cursor + 1); - return true; -} - -bool editor_save_disk(const void *obj, const char *outfile) { - editor_state_t *ed = map_find_or_add(editor_state, (void*)obj, (editor_state_t){0}); - - static __thread array(char) buffer = 0; - array_resize(buffer, 0); // <-- reused as an optimization - - bool ok = 0; - if( save1(true, &buffer, ed->properties) > 0 ) { - ok = file_write(outfile, buffer, array_count(buffer)); - } - - ui_notify("Save", ok ? "OK" : ICON_MD_WARNING " Failed!"); - return ok; -} - -bool editor_load_disk(void *obj, const char *infile) { - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - int buflen; - char *buffer = file_load(infile, &buflen); - if( buffer && buflen ) { - if( load1(true, buffer, buflen, ed->properties, 0) > 0 ) { - return true; - } - } - - return false; -} - -bool editor_save_mem(void *obj) { - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - static array(char) buffer = 0; - array_resize(buffer, 0); - - // save - int bytes = save1(true, &buffer, ed->properties); - if( bytes <= 0 ) return false; - - // discard save if same size + same content (ie, no changes between this save and previous one) - if( array_count(ed->history) > 1 ) { - vec2i before = *array_back(ed->history); - if( bytes == (before.to - before.from) ) { - if( !memcmp(buffer, ed->buffer + array_count(ed->buffer) - bytes, bytes ) ) { - return false; // puts("discarding save..."); - } - } - } - -#if 0 - // discard redo - if( ed->cursor < array_count(ed->history) ) { - array_resize(ed->buffer, ed->history[ed->cursor].to); - array_resize(ed->history, ed->cursor + 1); - } -#else - editor_clear_redo(obj); -#endif - - // append - int checkpoint = array_count(ed->buffer); - array_resize(ed->buffer, array_count(ed->buffer) + bytes); - memcpy(ed->buffer + checkpoint, buffer, bytes); - - // proceed - array_push(ed->history, vec2i(checkpoint, array_count(ed->buffer))); - - // move cursor to latest - ed->cursor = array_count(ed->history) - 1; - - return true; -} - -bool editor_load_mem(void *obj) { - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - // load latest & update history - int slots = array_count(ed->history); - if( slots ) - if( load1(true, ed->buffer, array_count(ed->buffer), ed->properties, ed->history[slots - 1].from) > 0 ) - return ed->cursor = slots - 1, true; - - return false; -} - -bool editor_reset(void *obj) { // load first checkpoint - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - // load first slot - if( load1(true, ed->buffer, array_count(ed->buffer), ed->properties, ed->history[0].from) > 0 ) { - // discard redo - array_resize(ed->buffer, ed->history[0].to); - // update history - array_resize(ed->history, 1); - // move cursor to latest - ed->cursor = array_count(ed->history) - 1; - return true; - } - - return false; -} - -bool editor_undo(void *obj) { - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - // load previous & rewind history by -1 - if( ed->cursor > 0 ) - if( load1(true, ed->buffer, array_count(ed->buffer), ed->properties, ed->history[ed->cursor - 1].from) >= 0 ) - return ed->cursor -= 1, true; - - return false; -} - -bool editor_redo(void *obj) { - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - // load next & forward history by +1 - if( ed->cursor < (array_count(ed->history)-1) ) - if( load1(true, ed->buffer, array_count(ed->buffer), ed->properties, ed->history[ed->cursor + 1].from) >= 0 ) - return ed->cursor += 1, true; - - return false; -} - -bool editor_diff(const void *obj1, const void *obj2, array(char) patch) { // @todo - // @todo check: if both valid && both same type - return false; -} -bool editor_patch(void *obj1, array(char) patch) { // @todo - return false; -} - -// obj/module: persist - -char *editor_obj_intern(void *obj, const char *quark, const char *value) { - editor_init_states(); - - editor_dict_t *dict = map_find_or_add(editor_dicts, obj, 0); - if( *dict == 0 ) map_init_str(*dict); - - char **key = map_find_or_add_allocated_key(*dict, STRDUP(quark), 0); - if(*key) FREE(*key); - *key = STRDUP(value); - - return *key; -} - -char *editor_obj_string(const void *obj, const char *quark) { - editor_dict_t *dict = map_find_or_add(editor_dicts, (void*)obj, 0); - if( *dict == 0 ) map_init_str(*dict); - - char **key = map_find_or_add_allocated_key(*dict, STRDUP(quark), 0); - return *key ? *key : ""; -} - -// obj/module: hierarchy - -void editor_obj_childof_tick(void *obj, void *parent) { - array(void*) *found = map_find(editor_children_tick, parent); - if(!found) found = map_insert(editor_children_tick, parent, 0); - if( obj && obj != parent ) { // dont recurse - for( int i = 0; i < array_count(*found); ++i ) { - if( (*found)[i] == obj ) return; // child was already added - } - array_push(*found, obj); - } -} - -void editor_obj_childof_draw(void *obj, void *parent) { - array(void*) *found = map_find(editor_children_draw, parent); - if(!found) found = map_insert(editor_children_draw, parent, 0); - if( obj && obj != parent ) { // dont recurse - for( int i = 0; i < array_count(*found); ++i ) { - if( (*found)[i] == obj ) return; // child was already added - } - array_push(*found, obj); - } -} - -void editor_obj_childof(void *obj, void *parent) { - array(void*) *found = map_find(editor_children, parent); - if(!found) found = map_insert(editor_children, parent, 0); - if( obj && obj != parent ) { // dont recurse - for( int i = 0; i < array_count(*found); ++i ) { - if( (*found)[i] == obj ) return; // child was already added - } - array_push(*found, obj); - } -} - -// obj/module: methods - -typedef void* (*generic_method)(); - -void editor_obj_bind0(const void *obj, unsigned method, generic_method func ) { - do_once editor_init_states(); - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - m->call = func; - m->bound = 0; - - set_find_or_add(editor_world, (void*)obj); -} -void editor_obj_bind1(const void *obj, unsigned method, generic_method func, void *arg1 ) { - do_once editor_init_states(); - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - m->call = func; - m->vargs[0] = arg1; - m->bound = 1; - - set_find_or_add(editor_world, (void*)obj); -} -void editor_obj_bind2(const void *obj, unsigned method, generic_method func, void *arg1, void *arg2 ) { - do_once editor_init_states(); - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - m->call = func; - m->vargs[0] = arg1; - m->vargs[1] = arg2; - m->bound = 2; - - set_find_or_add(editor_world, (void*)obj); -} -void editor_obj_bind3(const void *obj, unsigned method, generic_method func, void *arg1, void *arg2, void *arg3 ) { - do_once editor_init_states(); - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - m->call = func; - m->vargs[0] = arg1; - m->vargs[1] = arg2; - m->vargs[2] = arg3; - m->bound = 3; - - set_find_or_add(editor_world, (void*)obj); -} -void editor_obj_bind4(const void *obj, unsigned method, generic_method func, void *arg1, void *arg2, void *arg3, void *arg4 ) { - do_once editor_init_states(); - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - m->call = func; - m->vargs[0] = arg1; - m->vargs[1] = arg2; - m->vargs[2] = arg3; - m->vargs[3] = arg4; - m->bound = 4; - - set_find_or_add(editor_world, (void*)obj); -} -void *editor_obj_call0(const void *obj, unsigned method ) { - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - if( !m->call ) return 0; - if( m->bound == 1 ) return (m->call)(obj, m->vargs[0]); - if( m->bound == 2 ) return (m->call)(obj, m->vargs[0], m->vargs[1]); - if( m->bound == 3 ) return (m->call)(obj, m->vargs[0], m->vargs[1], m->vargs[2]); - if( m->bound == 4 ) return (m->call)(obj, m->vargs[0], m->vargs[1], m->vargs[2], m->vargs[3]); - return (m->call)(obj); -} -void *editor_obj_call1(const void *obj, unsigned method, void *arg1 ) { - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - return m->call ? m->call(obj, arg1) : 0; -} -void *editor_obj_call2(const void *obj, unsigned method, void *arg1, void *arg2 ) { - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - return m->call ? m->call(obj, arg1, arg2) : 0; -} -void *editor_obj_call3(const void *obj, unsigned method, void *arg1, void *arg2, void *arg3 ) { - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - return m->call ? m->call(obj, arg1, arg2, arg3) : 0; -} -void *editor_obj_call4(const void *obj, unsigned method, void *arg1, void *arg2, void *arg3, void *arg4 ) { - editor_call_t *m = &(map_find_or_add(editor_module, (void*)obj, (editor_module_t){0})->methods[method]); - return m->call ? m->call(obj, arg1, arg2, arg3, arg4) : 0; -} - -// obj/module: ui/property - -void editor_obj_property(void *obj, void *value, const char *metas) { - do_once editor_init_states(); - - ASSERT( obj ); - ASSERT( value ); - ASSERT( metas ); - char *meta = va("%s", metas); - - struct property p = {0}; - - // parse tooltip, if present - for( char *tooltip = strstr(meta, " @"); tooltip; *tooltip = 0, tooltip = 0) { - p.hint = STRDUP(tooltip + 2); - } - - // parse metas, if present - for( char *metas = strstr(meta, "//"); metas; *metas = 0, metas = 0) { - for each_substring(metas + 2, " ", token) { - /**/ if(strbegi(token, "hint=")) token = token + 5 + strspn(token + 5, " "), p.hint = STRDUP(token); - else if(strbegi(token, "minv=")) token = token + 5 + strspn(token + 5, " "), p.minv = STRDUP(token); - else if(strbegi(token, "maxv=")) token = token + 5 + strspn(token + 5, " "), p.maxv = STRDUP(token); - } - } - - // parse declaration - unsigned field = ~0u; - for each_substring(meta, "={,}(); ", token) { - // next field - ++field; - // parse fields - /**/ if(field == 0) p.type = STRDUP(token); - else if(field == 1) { // either name or namespace.name - p.name = strchr(token, '.'); - if( !p.name ) p.name = STRDUP(token); - else p.name = STRDUP(p.name + 1), p.mark = STRDUP(token), *strchr(p.mark, '.') = '\0'; - } - else {} // any initialization values here - } - - // required fields - ASSERT(p.name); - ASSERT(p.type); - - // combine name+hint together - if( p.hint ) { - char *combined = va("%s@%s", p.name, p.hint); - FREE(p.hint), p.hint = 0; - strcatf(&p.hint, "%s", combined); - } else { - p.hint = p.name; - } - - // defaults - p.value = value; - - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - array_push( ed->properties, p ); -} - -void* editor_obj_get_property_by_index(const void *obj, unsigned property_no) { - editor_state_t *ed = map_find_or_add(editor_state, (void*)obj, (editor_state_t){0}); - return property_no < array_count(ed->properties) ? ed->properties[property_no].value : 0; -} - -void* editor_obj_get_property_by_name(const void *obj, const char *property_name) { - editor_state_t *ed = map_find_or_add(editor_state, (void*)obj, (editor_state_t){0}); - for each_array(ed->properties, struct property, p) { - if( !strmatchi(p.name, property_name) ) continue; - return p.value; - } - return 0; -} - -bool editor_obj_render_min_properties(const void *obj, const char *mask) { - editor_state_t *ed = map_find_or_add(editor_state, (void*)obj, (editor_state_t){0}); - - if(!mask) return false; - - const char *section = 0; - for each_array(ed->properties, struct property, p) { - if( p.mark ) { - if( section == 0 || strcmp(section, p.mark) ) { - if( section != 0 ) ui_separator(); - section = p.mark; - ui_label(va("*%s", section)); // '*' adds bold style in labels - } - } - - if( !strmatchi(p.name, mask) ) continue; - - /**/ if( p.type[0] == 'l') ui_label(p.hint); - else if( p.type[0] == 'f') ui_float(p.hint, p.value); - else if( p.type[0] == 'v') ui_float3(p.hint, p.value); - else if( p.type[0] == 'i') ui_int(p.hint, p.value); - else if( p.type[0] == 'b') ui_bool(p.hint, p.value); - } - return true; -} - -void editor_obj_render_max_properties(void *obj, const char *mask) { // headless, needs layout (window/panel) - const char *toolbar_text = va( - ICON_MD_LOOP ";" ICON_MD_SD_CARD ";" ICON_MD_UNDO ";" ICON_MD_REDO ";Save;Load;%s", - va(ICON_MD_BUG_REPORT "@Raise breakpoint (%sebugger detected).", has_debugger() ? "D":"No d")); // ICON_MD_FRONT_HAND - - int button = ui_toolbar(toolbar_text); - if( button ) { - if( button == 1 ) editor_key = key_load_disk; // key_reset; - if( button == 2 ) editor_key = key_save_disk; - if( button == 3 ) editor_key = key_undo; - if( button == 4 ) editor_key = key_redo; - if( button == 5 ) editor_key = key_save_disk; - if( button == 6 ) editor_key = key_load_disk; - if( button == 7 ) editor_key = key_debugger; - } - - ui_separator(); - - editor_obj_render_min_properties(obj, mask); - - ui_separator(); - ui_label("*Debug"); - - editor_state_t *ed = map_find_or_add(editor_state, obj, (editor_state_t){0}); - - static char *s = 0; if(s) *s = 0; - for( int i = 0; i < array_count(ed->history); ++i ) strcatf(&s, ",%s%d..%d", ed->cursor == i ? "->":"", (int)ed->history[i].from, (int)ed->history[i].to); - if(s) ui_label(va("Object Savepoints: %s", s+1)); - - ui_buffer("Object console", va("%s","(empty)"), 7+1); -} - -// main editor interface - -void editor_render_menubar() { - int alts = input(KEY_LALT) || input(KEY_RALT); // @todo: move to v4k.c - int ctrls = input(KEY_LCTRL) || input(KEY_RCTRL); // @todo: move to v4k.c - int shifts = input(KEY_LSHIFT) || input(KEY_RSHIFT); // @todo: move to v4k.c - int mods = alts || ctrls || shifts; // @todo: move to v4k.c - if( input_down(KEY_F5) ) editor_key = key_reload; - if( input_down(KEY_F11) ) editor_key = key_fullscreen; - if( input_down(KEY_PAUSE) ) editor_key = key_pause; - if( input_down(KEY_PRINT) ) editor_key = (mods ? key_recording : key_screenshot); - // if( input_down(KEY_W) && input_held(KEY_LCTRL) ) editor_key = key_quit; - - if( ctrls ) { - /**/ if( input_down(KEY_Z) ) editor_key = key_undo; - else if( input_down(KEY_Y) ) editor_key = key_redo; - else if( input_down(KEY_S) ) editor_key = key_save_disk; - else if( input_down(KEY_A) ) editor_select_all(); - else if( input_down(KEY_D) ) editor_select_none(); - } - - if( !editor_key /*&& !input_anykey()*/ && editor_selected_obj ) { - if( input_up(MOUSE_L) ) editor_key = key_save_mem; - if( input_down(MOUSE_R) ) ui_show("Properties", true); - #if 0 - { - vec2 dims = { 200, 400 }; - if( nk_tooltip_begin(ui_ctx, dims.w)) { - nk_layout_row_dynamic(ui_ctx, dims.h, 1); - editor_obj_render_min_properties(editor_selected_obj); - nk_tooltip_end(ui_ctx); - } - } - #endif - } - - // @fixme: send all editor keys to game? - // if( input_repeat(KEY_ESC, 300)) {} - // if( input_repeat(KEY_F1, 300)) {} - // etc... - - // menubar - - if( ui_menu( ICON_MD_SETTINGS "@Preferences;" - ICON_MD_G_TRANSLATE " Language;" - ICON_MD_FACE " Profile;" // editor account, but also fake profile and 1st party credentials - ICON_MD_MESSAGE " Social;" - ICON_MD_ROCKET_LAUNCH " Game;" // - ICON_MD_KEYBOARD " Keyboard;" - ICON_MD_MOUSE " Mouse;" - ICON_MD_GAMEPAD " Gamepad;" - ICON_MD_MONITOR " Display;" // @todo: RENDER settings, AUDIO settings - ICON_MD_WIFI " Network;" - ICON_MD_SAVINGS " Budget;" // mem,gfx,net,hdd,... also logging - ICON_MD_CREATE_NEW_FOLDER " Folders;" // including project folders - ICON_MD_EXTENSION " Plugins;" // including VCS - ICON_MD_REPLAY " Restart;" - ICON_MD_CLOSE " Quit;" - "-" ICON_MD_RECYCLING " Reset all preferences;" ICON_MD_SAVE_AS " Save all preferences" - ) ) { - if( ui_item() == 3 ) {} // key mappings - if( ui_item() == 4 ) {} // sensitivity, invert xylrw - if( ui_item() == 5 ) {} // sensitivity, invert xy,ab, deadzones - if( ui_item() == 7 ) {} // name,email,icon,link,github - if( ui_item() == 13) editor_key = key_reload; - if( ui_item() == 14) editor_key = key_quit; - } - - if( ui_menu( window_has_pause() ? ICON_MD_PLAY_ARROW "@Tap to Play Game" : ICON_MD_PAUSE "@Tap to Pause Game" )) editor_key = key_pause; - if( ui_menu( ICON_MD_STOP "@Stop game" )) editor_key = key_stop; - if( ui_menu( ICON_MD_CLOSE "@Close game" ) ) {} - static char game_args[16] = "--game-args"; // @fixme @todo remove '_' special char to signal that ui_menu() is writeable (inputbox) - if( ui_menu_editbox( game_args, 16 ) ) {} - - // ICON_MD_TROUBLESHOOT -> PROFILER - // ICON_MD_SCHEMA -> GRAPHNODES - // ICON_MD_ACCOUNT_TREE -> GRAPHNODES - // ICON_MD_TIPS_AND_UPDATES -> BULB - // if( ui_menu( ICON_MD_MENU )) {} - - if( ui_menu( ICON_MD_FOLDER_SPECIAL "@Content browser" )) editor_key = key_browser; - if( ui_menu( va(ICON_MD_VIEW_IN_AR " %d/%d@World outliner", set_count(editor_selection), map_count(editor_state) ))) editor_key = key_outliner; - - if( ui_menu( va(ICON_MD_BUILD "@Build game"))) ui_notify("Build", ICON_MD_WARNING " Not implemented."); - - if( ui_menu( ICON_MD_PHOTO_CAMERA "@Take Screenshot" )) editor_key = key_screenshot; // MD_SCREENSHOT_MONITOR - if( ui_menu( record_active() ? ICON_MD_VIDEOCAM_OFF "@Stop video recording" : ICON_MD_VIDEOCAM "@Start video recording" )) { if(record_active()) record_stop(); else editor_key = key_recording; } - if( ui_menu( editor_gamepad ? ICON_MD_VIDEOGAME_ASSET "@Gamepad is enabled. Tap to disable." : ICON_MD_VIDEOGAME_ASSET_OFF "@Gamepad is disabled. Tap to enable." )) editor_key = key_gamepad; - if( ui_menu( audio_volume_master(-1) > 0 ? ICON_MD_VOLUME_UP "@Audio is enabled. Tap to mute." : ICON_MD_VOLUME_OFF "@Audio is muted. Tap to enable." )) editor_key = key_mute; - if( ui_menu( window_has_fullscreen() ? ICON_MD_FULLSCREEN_EXIT "@Fullscreen. Tap to go Windowed." : ICON_MD_FULLSCREEN "@Windowed. Tap to go Fullscreen." )) editor_key = key_fullscreen; - - if( ui_menu( editor_ddraw ? ICON_MD_IMAGE_SEARCH "@Debug renderer. Tap to go Retail Renderer." : ICON_MD_INSERT_PHOTO "@Retail renderer. Tap to go Debug Renderer." )) editor_key = key_ddraw; // ICON_MD_ADD_PHOTO_ALTERNATE - if( ui_menu( editor_lit ? ICON_MD_LIGHTBULB "@Lit. Tap to disable lighting." : ICON_MD_LIGHTBULB_OUTLINE "@Unlit. Tap to enable lighting." )) editor_key = key_lit; - - // logic: either plug icon (power saving off) or one of the following ones (power saving on): - // if 0% batt (no batt): battery alert - // if discharging: battery levels [alert,0..6,full] - // if charging: battery charging - int battery_read = app_battery(); - int battery_level = abs(battery_read); - int battery_discharging = battery_read < 0 && battery_level < 100; - const char *battery_levels[9] = { // @todo: remap [7%..100%] -> [0..1] ? - ICON_MD_BATTERY_ALERT, - ICON_MD_BATTERY_0_BAR,ICON_MD_BATTERY_1_BAR, - ICON_MD_BATTERY_2_BAR,ICON_MD_BATTERY_3_BAR, - ICON_MD_BATTERY_4_BAR,ICON_MD_BATTERY_5_BAR, - ICON_MD_BATTERY_6_BAR,ICON_MD_BATTERY_FULL, - }; - if( ui_menu( !editor_power_saving ? ICON_MD_POWER"@Full power. Tap to save power." : - va("%s@Power saving. Tap to go full power. %3d%% battery.", - battery_read == 0 ? ICON_MD_BATTERY_ALERT : - battery_discharging ? battery_levels[(int)((9-1)*clampf(battery_level/100.f,0,1))] : - ICON_MD_BATTERY_CHARGING_FULL, battery_level) )) - editor_key = key_battery; - - // @todo: combine-in-1? cycle mem -> cpu/profiler -> network mon -> debugger - if( ui_menu(va(ICON_MD_SIGNAL_CELLULAR_ALT " 0/0KiB" ))) {} // SIGNAL_CELLULAR_1_BAR SIGNAL_CELLULAR_2_BAR - if( ui_menu(va(ICON_MD_STORAGE " %s", xstats() ))) {} // 012/136MB - if( ui_menu(va(ICON_MD_SPEED " %5.2f/%d", window_fps(), (int)window_fps_target()))) editor_key = key_profiler; // 012/136MB - - // @todo: alarm/snooze, chrono, time (calendar?) - { - static double base = 0, tap = 0, delta = 0, enabled = 0; - double timer = base + delta; - if( ui_menu( !enabled ? - va(ICON_MD_TODAY "%02d:%02d@Tap to start chrono.", (int)((date() / 10000) % 100), (int)((date() / 100) % 100)) - : - va(ICON_MD_TIMELAPSE "%02dh:%02dm:%02ds:%02df@Tap to reset chrono.",((int)(timer/3600))%24,((int)(timer/60))%60,((int)timer)%60,(int)((timer - (int)timer)*window_fps_target())))) { - base = 0, tap = time_ss(), delta = 0; - enabled = 1; - } - if( editor_key == key_stop ) enabled = 0; - if( enabled ) { - if( !window_has_pause() ) delta = time_ss() - tap; - else base += delta, tap = time_ss(), delta = 0; - } - } - - for each_map_ptr(editor_state, void *, o, editor_state_t, ed) { - profile_incstat("Editor.num_objects", +1); - - void *obj = *o; - - // auto-load from disk during init. @fixme kvdb database - if( array_count(ed->history) == 0 ) - if( editor_load_disk(obj, editor_obj_string(obj, ".path")) ) - {} - - // auto-save in-mem during first edit - if( array_count(ed->history) == 0 ) - editor_save_mem(obj); - - // @todo: continue if obj not found in selection set - if( obj != editor_selected_obj ) - continue; - - if( editor_key == key_debugger ) { breakpoint("User requested breakpoint on this object"); } - if( editor_key == key_reset ) { const char *ok = editor_reset(obj) ? "ok" : "err"; EDITOR_PRINTF("reset: %s\n", ok); } - if( editor_key == key_save_mem ) { const char *ok = editor_save_mem(obj) ? "ok" : "err"; EDITOR_PRINTF("mem saved: %s\n", ok); } - if( editor_key == key_undo ) { const char *ok = editor_undo(obj) ? "ok" : "err"; EDITOR_PRINTF("undo: %s\n", ok); } - if( editor_key == key_redo ) { const char *ok = editor_redo(obj) ? "ok" : "err"; EDITOR_PRINTF("redo: %s\n", ok); } - if( editor_key == key_save_disk ) { const char *ok = editor_save_disk(obj, editor_obj_string(obj, ".path")) ? "ok" : "err"; EDITOR_PRINTF("save: %s\n", ok); } - if( editor_key == key_load_disk ) { const char *ok = editor_load_disk(obj, editor_obj_string(obj, ".path")) ? "ok" : "err"; EDITOR_PRINTF("load: %s\n", ok); } - } - - char *name; - switch( editor_key ) { - default: - break; case key_quit: record_stop(), exit(0); - break; case key_stop: window_pause(1); - break; case key_mute: audio_volume_master( 1 ^ !!audio_volume_master(-1) ); - break; case key_pause: window_pause( window_has_pause() ^ 1 ); - break; case key_reload: window_reload(); - break; case key_battery: editor_power_saving ^= 1; - break; case key_browser: ui_show("File Browser", ui_visible("File Browser") ^ true); - break; case key_outliner: ui_show("Outliner", ui_visible("Outliner") ^ true); - break; case key_recording: name = file_counter(va("%s.mp4",app_name())), window_record(name), ui_notify(va("Video capturing: %s", name), date_string()); - break; case key_screenshot: name = file_counter(va("%s.png",app_name())), window_screenshot(name), ui_notify(va("Screenshot: %s", name), date_string()); - break; case key_profiler: ui_show("Profiler", profiler_enable(ui_visible("Profiler") ^ true)); - break; case key_fullscreen: record_stop(), window_fullscreen( window_has_fullscreen() ^ 1 ); // framebuffer resizing corrupts video stream, so stop any recording beforehand - break; case key_gamepad: editor_gamepad ^= 1; - break; case key_lit: editor_lit ^= 1; - break; case key_ddraw: editor_ddraw ^= 1; - } -} - -uint64_t do_context_cmd = 0; -void *do_context_obj = 0; - -void editor_obj_render_properties_recursively(void *obj, const char *mask) { - array(void*) *found = map_find(editor_children, obj); - int num_subobjects = found ? array_count(*found) : 0; - - char *name = editor_obj_string(obj,".name"); name = name[0] ? name : va("%p", obj); - char *title = va("%s%s/ (%d)", - editor_is_selected(obj) ? ICON_MD_CHECK_BOX : ICON_MD_CHECK_BOX_OUTLINE_BLANK, name, num_subobjects); -// if( !strmatchi(title, mask) ) return; - char *id = va("LVL%p",obj); - - int clicked_or_toggled, open; // 1|clicked, 2|toggled - for( int p = (open = ui_collapse(title, id)), dummy = (clicked_or_toggled = ui_collapse_clicked()); p; ui_collapse_end(), p = 0) { - - // contextual menu (open) - if( ui_contextual() ) { - if( ui_button_transparent("C"); - if( choice ) printf("%d\n", choice); - - for( int i = 0; i < num_subobjects; ++i ) { - editor_tick_objs_recursively((*found)[i], flags); - } - } - } else { - for( int i = 0; i < num_subobjects; ++i ) { - editor_tick_objs_recursively((*found)[i], flags); - } - } -} - -void editor_draw_objs_recursively(void *obj, unsigned flags) { - array(void*) *found = map_find(editor_children_draw, obj); - int num_subobjects = found ? array_count(*found) : 0; - - if( flags & DRAW_ENABLED ) editor_obj_call0(obj, fn_draw); - - if( flags & DRAW_DO_UI ) { - char *name = editor_obj_string(obj,".name"); name = name[0] ? name : va("%p", obj); - char *title = va("%s%s/ (%d)", editor_is_selected(obj) ? ICON_MD_CHECK_BOX : ICON_MD_CHECK_BOX_OUTLINE_BLANK, name, num_subobjects); - // if( !strmatchi(title, mask) ) return; - char *id = va("GPU%p",obj); - - int clicked; - for( int p = ui_collapse(title, id), dummy = (clicked = ui_collapse_clicked()); p; ui_collapse_end(), p = 0) { - - int choice = ui_submenu("D"); - if( choice ) printf("%d\n", choice); - - for( int i = 0; i < num_subobjects; ++i ) { - editor_draw_objs_recursively((*found)[i], flags); - } - } - - } else { - for( int i = 0; i < num_subobjects; ++i ) { - editor_draw_objs_recursively((*found)[i], flags); - } - } -} - -void editor_render_windows() { - // content browser - if( ui_window("File Browser", 0) ) { - const char *file = 0; - if( ui_browse(&file, NULL) ) { - const char *sep = ifdef(win32, "\"", "'"); - app_exec(va("%s %s%s%s", ifdef(win32, "start \"\"", ifdef(osx, "open", "xdg-open")), sep, file, sep)); - } - ui_window_end(); - } - - // console/terminal window - if( 0 && ui_window("Console", 0) ) { - ui_console(); - ui_window_end(); - } - - // Scene/nodes - if( ui_window("Outliner", 0) ) { - // @todo: keys up,down,left,right -> tree nav - // @todo: tab -> cycle next node of matching highlighted type - - static int do_filter = 0; - - int choice = ui_toolbar(ICON_MD_SEARCH"@Filter;"ICON_MD_UPLOAD"@Load;"ICON_MD_DOWNLOAD"@Save;"ICON_MD_REFRESH"@Reset;"ICON_MD_UNDO"@Undo;"ICON_MD_REDO"@Redo;"); - if( choice == 1 ) do_filter ^= 1; - - static char filter[128] = {0}; - if( do_filter ) { - ui_buffer(ICON_MD_SEARCH " Filter", filter, 128); - } else { - filter[0] = '\0'; - } - char *mask = filter[0] ? va("*%s*", filter) : "*"; - -#if 0 - static unsigned tabs = 0xFF; - int choice = ui_toolbar( - "LV@Level tree: hierarchical logic datas used when ticking game.;" - "RN@Rendering tree: hierarchical rendering datas used when drawing game.;" - "VS@Visibility tree: hierarchical visibility datas used when ticking game and editor. Also collisions.;" - "ST@Streaming tree: hierarchical streaming datas used when streaming content off disk.;" - "PS@Persist tree: hierarchical storage datas within different game sessions.;" - "PR@Prefabs tree: hierarchical datas of prefabs definitions.;" - "ED@Editor tree: hierarchical datas used when ticking editor.;" - ); -#endif - - for( int c = ui_collapse(ICON_MD_FOLDER_SPECIAL " Art/", "ART"); c; ui_collapse_end(), c = 0) { - static const char *file; - static bool show_browser = 1; - if( ui_browse(&file, &show_browser) ) { - app_exec(va("%s %s", ifdef(win32, "start", ifdef(osx, "open", "xdg-open")), file)); - //puts(file); - } - } - - // - for( int c = ui_collapse(va(ICON_MD_FACTORY " Prefabs/ (%d)", map_count(editor_state)), "PRF"); c; ui_collapse_end(), c = 0) - for each_map_ptr(editor_state, void*, o, editor_state_t, ed) { - void *k = *o; - for( int p = ui_collapse(va("%s",strrchr(editor_obj_string(k,".path"),'/')+1), va("PF#%p",k)); p; ui_collapse_end(), p = 0) { - editor_obj_render_min_properties(k, mask); - } - } - - // dynamic/static bounds: depth + bounds + visibility - do_context_cmd = 0; - do_context_obj = 0; - for( int c = ui_collapse(va(ICON_MD_ACCOUNT_TREE " Levels/ (%d)", map_count(editor_children)), "LVL"); c; ui_collapse_end(), c = 0) - for each_map_ptr(editor_children, void*, o, array(void*), objs) { - void *k = *o; - editor_obj_render_properties_recursively(k, mask); - } - if( do_context_cmd == cc4(l,i,s,t) && do_context_obj ) { - printf("list [%p]\n", do_context_obj); - } - // draw: depth + state (alpha0=off) - // @fixme: make it a tree - for( int c = ui_collapse(va(ICON_MD_PALETTE " Rendering/ (%d)", map_count(editor_children_draw)), "GPU"); c; ui_collapse_end(), c = 0) - for each_map_ptr(editor_children_draw, void*, o, array(void*), objs) { - void *k = *o; - editor_draw_objs_recursively(k, DRAW_DO_UI); - } - // tick: depth + rate (00=off) --> logic - // @todo: physics tick group? anim tick group? any other tick group? - // @fixme: make it a tree - for( int c = ui_collapse(va(ICON_MD_FLAG " Ticking/ (%d)", map_count(editor_children_tick)), "CPU"); c; ui_collapse_end(), c = 0) - for each_map_ptr(editor_children_tick, void*, o, array(void*), objs) { - void *k = *o; - editor_tick_objs_recursively(k, TICK_DO_UI); - } - // init/quit: depth + prio - // @fixme: make it a tree - for( int c = ui_collapse(ICON_MD_CLOUD " Streaming/", "BVH"); c; ui_collapse_end(), c = 0) {} - // save/load: depth + savetomem?yn + savetodisk?yn + quant + lossy/lossless - // @fixme: make it a tree - for( int c = ui_collapse(va(ICON_MD_SD_CARD " Storage/ (%d)", map_count(editor_dicts)), "DSK"); c; ui_collapse_end(), c = 0) - for each_map_ptr(editor_dicts, void*, o, editor_dict_t, d) { - void *k = *o; - for( int p = ui_collapse(editor_obj_string(k,".name"), va("DSK%p",k)); p; ui_collapse_end(), p = 0) { - for each_map(*d, char*, s, char *, v) { - ui_label(va("%s: %s", s, v)); - } - } - } - - // others - for( int c = ui_collapse(ICON_MD_PRECISION_MANUFACTURING " Editors/", "EDT"); c; ui_collapse_end(), c = 0) { - // @todo: add settings here as well? - } - - for( int c = ui_collapse(ICON_MD_INFO " Help", "NFO"); c; ui_collapse_end(), c = 0) { - ui_label("=*General"); - ui_label2("*ESC", ">Editor on/off"); - ui_label2("*F11", ">Fullscreen on/off"); - ui_label2("*F5", ">Refresh"); - ui_separator(); - ui_label("=*Edit"); - ui_label2("*^Z, ^Y", ">Undo, Redo"); - ui_label2("*^X, ^C, ^V", ">Cut, Copy, Paste"); - ui_label2("*^S, ^L, ^R", ">Save, Load*, Restart*"); - ui_separator(); - ui_label("=*Select"); - ui_label2("*LMB, ^A, ^D", ">Select, All, None"); - ui_label2("*RMB", ">Contextual menu*"); - ui_label2("*SPACE@Cycle transform gizmo: position, rotation, scale.", ">Cycle transform gizmo"); - ui_separator(); - ui_label("=*Camera"); - ui_label2("*Q,E,C", ">Camera elevation"); - ui_label2("*W,A,S,D", ">Camera move"); - ui_label2("*LMB/RMB+drag", ">Camera view"); - ui_label2("*WMB", ">Camera speed"); - } - - ui_window_end(); - } - - // UI properties - if( ui_window("Properties", NULL) ) { - if( editor_selected_obj ) - editor_obj_render_max_properties(editor_selected_obj, "*"); - ui_window_end(); - } - - // Icon browser - if( ui_window("Icon Palette", 0 )) { - static const char *icons[] = { - #define ICON(x) ICON_MD_##x - #include "editor" - }; - static const char *titles[] = { - #define ICON(x) #x - #include "editor" - }; - - for( int i = 0, cols = 8; i < countof(icons); i += cols ) { - char buf[256], *p = buf; - for( int j = i, jmax = mini(i+cols, countof(icons)); j < jmax; ++j ) p += sprintf(p, "%s%03d@%s;", icons[j], j, titles[j]); - ui_toolbar(buf); - } - - ui_window_end(); - } -} - -ray *editor_pickup() { -// if(!window_has_cursor()) return NULL; - - // pick entity - bool any_active = ui_active() || ui_hover() || gizmo_active() || gizmo_hover() || input_touch_active(); - if( editor_enabled && !any_active && input_down(MOUSE_L) ) { - editor_mouse = vec2(input(MOUSE_X), input(MOUSE_Y)); - vec3 out = editor_pick(editor_mouse.x, editor_mouse.y); // unprj 2d as 3d coord - vec3 from = camera_get_active()->position, to = out; - static ray last_ray; - last_ray = ray(from, to); - return &last_ray; - } - - return 0; -} - -static -void editor_init() { - // enable outlines - do_once fx_load("editorOutline.fs"); - do_once fx_enable(0, 1); - - // init editor - do_once editor_init_states(); - do_once editor_init_variables(); -} - -bool editor() { - do_once editor_init(); - - // timing - editor_dt = window_delta() * !window_has_pause(); if(editor_dt > 1/60.f) editor_dt = 1/60.f; - editor_t += editor_dt; - - // enabled? - if( input_up(KEY_ESC) ) editor_enabled ^= 1; // editor on/off - if( !editor_enabled ) return false; - - // rendering + logic - editor_key = 0; - editor_render_windows(); - editor_render_menubar(); // must be last - - // adaptive framerate - int app_on_background = !window_has_focus(); - int hz = app_on_background ? editor_hz_low : editor_power_saving ? editor_hz_mid : editor_hz; - window_fps_lock( hz < 5 ? 5 : hz ); - - return true; -} - -void editor_camera_fps(void) { - static camera_t cam = {0}; - cam = *camera_get_active(); - - vec3 move = {0}; - vec2 view = {0}; - - // show/hide cursor - bool dragging = input(MOUSE_L) || input(MOUSE_M) || input(MOUSE_R); - bool any_active = ui_active() || ui_hover() || gizmo_active() || input_touch_active(); - if( any_active ) dragging = false; - window_cursor( !dragging ); - - // keyboard/mouse - if( dragging ) cam.speed = clampf(cam.speed + input_diff(MOUSE_W) / 10, 0.05f, 5.0f); - vec3 wasdec = scale3(vec3(input(KEY_D)-input(KEY_A),input(KEY_E)-(input(KEY_Q)||input(KEY_C)),input(KEY_W)-input(KEY_S)), cam.speed * !any_active); - vec2 mouse = scale2(vec2(input_diff(MOUSE_X), -input_diff(MOUSE_Y)), 0.2f * dragging * !any_active); - if( !input(KEY_LCTRL) && !input(KEY_RCTRL) ) // invalidate keys if pressing ctrl (ie, when saving CTRL-S) - move = add3(move, wasdec); - view = add2(view, mouse); - - // gamepad - if(0) { - vec2 filtered_lpad = input_filter_deadzone(input2(GAMEPAD_LPAD), 0.15f /*15% deadzone*/); - vec2 filtered_rpad = input_filter_deadzone(input2(GAMEPAD_RPAD), 0.15f /*15% deadzone*/); - vec3 gamepad_move = scale3(vec3(filtered_lpad.x, input(GAMEPAD_LT) - input(GAMEPAD_RT), filtered_lpad.y), 1.0f); - vec2 gamepad_view = scale2(filtered_rpad, 1.0f); - move = add3(move, gamepad_move); - view = add2(view, gamepad_view); - } - - // multi-touch - vec2 touch_move = input_touch_delta_from_origin(0, 0.0125f /*sensitivityFwd*/); // button #0 (left border) - vec2 touch_view = input_touch_delta(1, 0.125f /*sensitivityRot*/); // button #1 (right border) - move = add3(move, vec3(touch_move.x, 0, -touch_move.y)); - view = add2(view, vec2(touch_view.x, -touch_view.y)); - - // apply inputs - camera_moveby(&cam, move); - camera_fps(&cam, view.x,view.y); -} - -// sugars -static void *editor_with = 0; -#define editor_obj(x) (editor_with = (x)) -#define editor_obj_childof(...) editor_obj_childof(editor_with, __VA_ARGS__) -#define editor_obj_childof_tick(...) editor_obj_childof_tick(editor_with, __VA_ARGS__) -#define editor_obj_childof_draw(...) editor_obj_childof_draw(editor_with, __VA_ARGS__) -#define editor_obj_intern(...) editor_obj_intern(editor_with, __VA_ARGS__) -#define editor_obj_property(...) editor_obj_property(editor_with, __VA_ARGS__) -#define editor_obj_bind1(...) editor_obj_bind1(editor_with, __VA_ARGS__) -#define editor_obj_bind2(...) editor_obj_bind2(editor_with, __VA_ARGS__) -#define editor_obj_bind3(...) editor_obj_bind3(editor_with, __VA_ARGS__) -#define editor_obj_bind4(...) editor_obj_bind4(editor_with, __VA_ARGS__) - - -// my game - -void* mygrid_draw(void *singleton, float *ground_size) { +void editor_gizmos(int dim) { + // debugdraw + if(dim == 2) ddraw_push_2d(); ddraw_ontop_push(0); - ddraw_grid(*ground_size); + + // draw gizmos, aabbs, markers, etc + for each_map_ptr(*editor_selected_map(),void*,o,int,selected) { + if( !*selected ) continue; + + void *obj = *o; + + // get transform + vec3 *p = NULL; + vec3 *r = NULL; + vec3 *s = NULL; + aabb *a = NULL; + + for each_objmember(obj,TYPE,NAME,PTR) { + /**/ if( !strcmp(NAME, "position") ) p = PTR; + else if( !strcmp(NAME, "pos") ) p = PTR; + else if( !strcmp(NAME, "rotation") ) r = PTR; + else if( !strcmp(NAME, "rot") ) r = PTR; + else if( !strcmp(NAME, "scale") ) s = PTR; + else if( !strcmp(NAME, "sca") ) s = PTR; + else if( !strcmp(NAME, "aabb") ) a = PTR; + } + + ddraw_ontop(0); + + // bounding box 3d + if( 0 ) { + aabb box; + if( obj_hasmethod(*o, aabb) && obj_aabb(*o, &box) ) { + ddraw_color_push(YELLOW); + ddraw_aabb(box.min, box.max); + ddraw_color_pop(); + } + } + + // position marker + if( p ) { + static map(void*, vec3) prev_dir = 0; + do_once map_init_ptr(prev_dir); + vec3* dir = map_find_or_add(prev_dir, obj, vec3(1,0,0)); + + static map(void*, vec3) prev_pos = 0; + do_once map_init_ptr(prev_pos); + vec3* found = map_find_or_add(prev_pos, obj, *p), fwd = sub3(*p, *found); + if( (fwd.y = 0, len3sq(fwd)) ) { + *found = *p; + *dir = norm3(fwd); + } + + // float diameter = len2( sub2(vec2(box->max.x,box->max.z), vec2(box->min.x,box->min.z) )); + // float radius = diameter * 0.5; + ddraw_position_dir(*p, *dir, 1); + } + + ddraw_ontop(1); + + // transform gizmo + if( p && r && s ) { + gizmo(p,r,s); + } + } + + ddraw_ontop_pop(); + if(dim == 2) ddraw_pop_2d(); +} + +// ---------------------------------------------------------------------------- +// demo + +typedef struct lit { OBJ + vec3 pos; + vec3 dir; + int type; +} lit; + +int lit_aabb(lit *obj, aabb *box) { + *box = aabb( vec3(obj->pos.x-16,obj->pos.y-16,0), vec3(obj->pos.x+16,obj->pos.y+16,1) ); + return 1; +} +const char *lit_icon(lit *obj) { + const char *icon = + obj->type == 0 ? ICON_MD_WB_IRIDESCENT : + obj->type == 1 ? ICON_MD_WB_INCANDESCENT : + obj->type == 2 ? ICON_MD_FLARE : + obj->type == 3 ? ICON_MD_WB_SUNNY : ""; + return icon; +} +int lit_edit(lit *obj) { + const char *all_icons = + ICON_MD_WB_IRIDESCENT + ICON_MD_WB_INCANDESCENT + ICON_MD_FLARE + ICON_MD_WB_SUNNY + + ICON_MD_LIGHT_MODE + ICON_MD_LIGHT + + ICON_MD_FLASHLIGHT_OFF + ICON_MD_FLASHLIGHT_ON + ICON_MD_HIGHLIGHT + ICON_MD_HIGHLIGHT_ALT + ICON_MD_LIGHTBULB + ICON_MD_LIGHTBULB_OUTLINE + ICON_MD_NIGHTLIGHT + ICON_MD_NIGHTLIGHT_ROUND + + // MDI + ICON_MDI_LIGHTBULB_ON_OUTLINE // generic + ICON_MDI_WALL_SCONCE_ROUND // + ICON_MDI_WALL_SCONCE_FLAT // emissive + ICON_MDI_CEILING_LIGHT // spotlight + ICON_MDI_TRACK_LIGHT // spotlight + ICON_MDI_WEATHER_SUNNY // directional + ICON_MDI_LIGHTBULB_FLUORESCENT_TUBE_OUTLINE + ; + // editor_symbol(obj->pos.x+16,obj->pos.y-32,all_icons); + if( editor_selected(obj) ) { + obj->pos.x += input(KEY_RIGHT) - input(KEY_LEFT); + obj->pos.y += input(KEY_DOWN) - input(KEY_UP); + obj->type = (obj->type + !!input_down(KEY_SPACE)) % 4; + } + editor_symbol(obj->pos.x,obj->pos.y,lit_icon(obj)); + + + + return 1; +} + +OBJTYPEDEF(lit,200); + +AUTORUN { + STRUCT(lit, vec3, pos); + STRUCT(lit, vec3, dir); + STRUCT(lit, int, type); + EXTEND(lit, edit,icon,aabb); +} + +typedef struct kid { OBJ + int kid; + vec2 pos; + vec2 vel; + float angle; + unsigned color; + int controllerid; + + // --- private + char *filename; + texture_t texture_; +} kid; + +void kid_ctor(kid *obj) { + obj->kid = randi(0,3); + obj->pos = vec2(randi(0, window_width()), randi(0, window_height())); + obj->vel.x = obj->vel.y = 100 + 200 * randf(); + obj->controllerid = randi(0,3); + + obj->texture_ = texture(obj->filename, TEXTURE_RGBA|TEXTURE_LINEAR); +} +void kid_tick(kid *obj, float dt) { + // add velocity to position + vec2 off = vec2( input(KEY_RIGHT)-input(KEY_LEFT), input(KEY_DOWN)-input(KEY_UP) ); + obj->pos = add2(obj->pos, scale2(mul2(obj->vel, off), dt * (obj->controllerid == 0))); + + // wrap at screen boundaries + const int appw = window_width(), apph = window_height(); + if( obj->pos.x < 0 ) obj->pos.x += appw; else if( obj->pos.x > appw ) obj->pos.x -= appw; + if( obj->pos.y < 0 ) obj->pos.y += apph; else if( obj->pos.y > apph ) obj->pos.y -= apph; +} +void kid_draw(kid *obj) { + // 4x4 tilesheet + int col = (((int)obj->kid) % 4); + int row = (((int)obj->pos.x / 10 ^ (int)obj->pos.y / 10) % 4); + float position[3] = {obj->pos.x,obj->pos.y,obj->pos.y}; // position(x,y,depth: sort by Y) + float offset[2]={0,0}, scale[2]={1,1}; + float coords[3]={col * 4 + row,4,4}; // num_frame(x) in a 4x4(y,z) spritesheet + sprite_sheet(obj->texture_, coords, position, obj->angle*TO_DEG, offset, scale, + 0, obj->color, 0); // is_additive, tint color, resolution independant +} +int kid_aabb(kid *obj, aabb *box) { + *box = aabb( vec3(obj->pos.x-16,obj->pos.y-16,0), vec3(obj->pos.x+16,obj->pos.y+16,1) ); + return 1; +} +int kid_edit(kid *obj) { + aabb box; + if( kid_aabb(obj, &box) ) { + ddraw_color_push(YELLOW); + ddraw_push_2d(); + ddraw_aabb(box.min, box.max); + ddraw_pop_2d(); + ddraw_color_pop(); + } + if( editor_selected(obj) ) { + obj->pos.x += input(KEY_RIGHT) - input(KEY_LEFT); + obj->pos.y += input(KEY_DOWN) - input(KEY_UP); + + editor_symbol(obj->pos.x+16,obj->pos.y-16,ICON_MD_VIDEOGAME_ASSET); + } + return 1; +} +void kid_menu(kid *obj, const char *argv) { + ui_label("Private section"); + ui_color4("Color_", &obj->color); + ui_texture("Texture_", obj->texture_); + ui_separator(); +} + +OBJTYPEDEF(kid,201); + +AUTORUN { + // reflect + STRUCT(kid, int, kid); + STRUCT(kid, vec2, pos); + STRUCT(kid, vec2, vel); + STRUCT(kid, float, angle, "Tilt degrees"); + STRUCT(kid, rgba, color, "Tint color"); + STRUCT(kid, char*, filename, "Filename" ); + EXTEND(kid, ctor,tick,draw,aabb,edit,menu); +} + +void game(unsigned frame, float dt, double t) { + static kid *root; + static kid *o1; + static kid *o2; + static camera_t cam; + if( !frame ) { + // init camera (x,y) (z = zoom) + cam = camera(); + cam.position = vec3(window_width()/2,window_height()/2,1); + camera_enable(&cam); + + root = obj_make( + "[kid]\n" + "filename=spriteSheetExample.png\n" + "pos=5,2\n" + "angle=pi/12\n" + "color=#ffcf\n" + ); + o1 = obj_make( + "[kid]\n" + "filename=spriteSheetExample.png\n" + "pos=1,100\n" + "angle=pi/12\n" + "color=#fcc\n" + ); + o2 = obj_make( + "[kid]\n" + "filename=spriteSheetExample.png\n" + "pos=50,200\n" + "angle=pi/12\n" + "color=#ccccffff\n" + ); + + //obj_setname(root, "root"); + obj_setname(o1, "o1"); + obj_setname(o2, "o2"); + + obj*o3 = obj_make( + "[lit]\n" + "pos=300,300,0\n" + "type=1" + ); + obj*o4 = obj_new_ext(obj, "o4"); + obj*o5 = obj_new_ext(obj, "o5"); + + obj_attach(root, o1); + obj_attach(o1, o2); + obj_attach(o2, o3); + obj_attach(o1, o4); + obj_attach(root, o5); + + editor_watch(root); + } + + // camera panning (x,y) & zooming (z) + if(0) + if( !ui_hover() && !ui_active() ) { + if( input(MOUSE_L) ) cam.position.x -= input_diff(MOUSE_X); + if( input(MOUSE_L) ) cam.position.y -= input_diff(MOUSE_Y); + cam.position.z += input_diff(MOUSE_W) * 0.1; // cam.p.z += 0.001f; for tests + } + + // tick game + if( dt ) { + kid_tick(root, dt); + kid_tick(o1, dt); + kid_tick(o2, dt); + + root->angle = 5 * sin(t+dt); + } + + // fps camera + bool active = 0; + if( input_down(MOUSE_M) || input_down(MOUSE_R) ) { + active = ui_hover() || ui_active() || gizmo_active() || editor_first_selected() ? false : true; + } else { + active = !window_has_cursor() && (input(MOUSE_M) || input(MOUSE_R)); + } + window_cursor( !active ); + if( active ) cam.speed = clampf(cam.speed + input_diff(MOUSE_W) / 10, 0.05f, 5.0f); + vec2 mouse = scale2(vec2(input_diff(MOUSE_X), -input_diff(MOUSE_Y)), 0.2f * active); + vec3 wasdecq = scale3(vec3(input(KEY_D)-input(KEY_A),input(KEY_E)-(input(KEY_C)||input(KEY_Q)),input(KEY_W)-input(KEY_S)), cam.speed); + camera_moveby(&cam, wasdecq); + camera_fps(&cam, mouse.x,mouse.y); + + // draw world + ddraw_ontop_push(0); + ddraw_grid(0); ddraw_ontop_pop(); ddraw_flush(); - return 0; -} -void* mymodel_draw(model_t *m, float pivot[16]) { - camera_t *cam = camera_get_active(); - model_render(*m, cam->proj, cam->view, pivot, 0); - return 0; -} -void* mymodel_tick(model_t *m, float pivot[16], vec3 *p, vec3 *r, vec3 *s) { - rotationq44(pivot, eulerq(*r)); - scale44(pivot, s->x,s->y,s->z); - relocate44(pivot,p->x,p->y,p->z); - return 0; -} -void* mymodel_aabb(model_t *m, float pivot[16]) { - static __thread struct aabb aabb[64]; - static __thread int counter = 0; counter = (counter + 1) % 64; - aabb[counter] = model_aabb(*m, pivot); - return &aabb[counter]; + + // draw game + kid_draw(root); + kid_draw(o1); + kid_draw(o2); } +int main(){ + // borderless, see: + // https://github.com/glfw/glfw/pull/1420 + // https://github.com/glfw/glfw/pull/987 + // https://github.com/glfw/glfw/pull/991 + // https://github.com/glfw/glfw/pull/990 -int main() { - // 80% window, MSAAx2 flag - window_create(80, WINDOW_MSAA2); - window_title("Editor " EDITOR_VERSION " (wip)"); - window_icon("logo.png"); + window_title("Editor " EDITOR_VERSION); + if( flag("--transparent") ) + window_create(101, 0); + else + window_create(80, flag("--borderless") ? WINDOW_BORDERLESS : 0); + window_icon("scale-ruler-icon.png"); - // @fixme - camera_t x = camera(); - - // config ground floor - float ground_size = 0; - editor_obj(&ground_size); - editor_obj_intern(".name", "ground"); - editor_obj_intern(".path", editor_path("ground.ini")); - editor_obj_property(&ground_size, "float Size"); - editor_obj_bind1(fn_draw, mygrid_draw, &ground_size); - - // config 3d model #1 - mat44 witch_pivot; - vec3 witch_p = {-5,0,-5}, witch_r={-180,180,0}, witch_s={0.1,-0.1,0.1}; - model_t witch = model("witch/witch.obj", 0); - model_set_texture(witch, texture("witch/witch_diffuse.tga.png", 0)); - - editor_obj(&witch); - editor_obj_childof(&ground_size); - editor_obj_childof_tick(&ground_size); - editor_obj_childof_draw(&ground_size); - editor_obj_intern(".name", "witch"); - editor_obj_intern(".path", editor_path("witch.ini")); - editor_obj_property(&witch_p, "vec3 Position"); // property #0 - editor_obj_property(&witch_r, "vec3 Rotation"); // property #1 - editor_obj_property(&witch_s, "vec3 Scale"); // property #2 - editor_obj_bind1(fn_draw, mymodel_draw, witch_pivot); - editor_obj_bind1(fn_aabb, mymodel_aabb, witch_pivot); - editor_obj_bind4(fn_tick, mymodel_tick, witch_pivot, &witch_p, &witch_r, &witch_s); - - // config 3d model #2 - mat44 girl_pivot; id44(girl_pivot); - model_t girl = model("kgirl/kgirls01.fbx", 0); - vec3 girl_p = {0,0,0}, girl_r = {270,0,0}, girl_s = {2,2,2}; - - editor_obj(&girl); - editor_obj_childof(&ground_size); - editor_obj_childof_tick(&ground_size); - editor_obj_childof_draw(&ground_size); - editor_obj_intern(".name", "girl"); - editor_obj_intern(".path", editor_path("girl.ini")); - editor_obj_property(&girl_p, "vec3 Transform.Position; // @Position in world units"); - editor_obj_property(&girl_r, "vec3 Transform.Rotation; // @Rotation in degrees"); - editor_obj_property(&girl_s, "vec3 Transform.Scale; // @Scale factor (decimal)"); - editor_obj_bind1(fn_draw, mymodel_draw, girl_pivot); - editor_obj_bind1(fn_aabb, mymodel_aabb, girl_pivot); - editor_obj_bind4(fn_tick, mymodel_tick, girl_pivot, &girl_p, &girl_r, &girl_s); - - // meta(&girl_frame, "float Animation.Frame; // @Animation frame"); - - editor_select(&girl, false); - - ui_notify("Hint", "Keys I/J/K/L + Z/X to control the girl"); - - // editor loop while( window_swap() ) { - - // editor tick - profile("Editor") { - editor(); - //ui_demo(); - } - - // fps camera - if( /*editor_attached ||*/ editor_enabled ) { - profile("Editor.Camera") { - editor_camera_fps(); - } - } else { - profile("Game.Camera") { - camera_t *cam = camera_get_active(); - - static vec3 source; - do_once source = cam->position; - - vec3 target = add3(girl_p, vec3(0,10,0)); - target = add3(target, scale3(norm3(sub3(source, target)), 10.0)); - source = mix3(source, target, 1-0.99f); - - camera_teleport(cam, source); - camera_lookat(cam, vec3(girl_p.x,0,girl_p.z)); - - // @todo: orbit cam w/ right pad - } - } - - double GAME_JUMP_DOWN = input_down(KEY_Z); - double GAME_FIRE_DOWN = input_down(KEY_X); - double GAME_JUMP = input(KEY_Z); - double GAME_FIRE = input(KEY_X); - double GAME_LEFT = input(KEY_J); - double GAME_RIGHT = input(KEY_L); - double GAME_UP = input(KEY_I); - double GAME_DOWN = input(KEY_K); - double GAME_AXISX = input(KEY_L) - input(KEY_J); - double GAME_AXISY = input(KEY_I) - input(KEY_K); - - if( editor_gamepad && !input_anykey() ) { - if( input(GAMEPAD_CONNECTED) ) { - vec2 filtered_lpad = input_filter_deadzone(input2(GAMEPAD_LPAD), 0.15f /*15% deadzone*/); - GAME_JUMP_DOWN = input_down(GAMEPAD_A); - GAME_FIRE_DOWN = input_down(GAMEPAD_B) || input_down(GAMEPAD_X) || input_down(GAMEPAD_Y); - GAME_JUMP = input(GAMEPAD_A); - GAME_FIRE = input(GAMEPAD_B) || input(GAMEPAD_X) || input(GAMEPAD_Y); - GAME_AXISX = filtered_lpad.x; - GAME_AXISY = filtered_lpad.y; - } - } - - profile("Game.Animate scene") if( editor_delta() ) { - float delta = editor_delta() * 30; // 30fps anim - - // animate girl - girl.curframe = model_animate(girl, girl.curframe + delta); - - // jump controller: jump duration=1.5s, jump height=6 units, anims (expo->circ) - float jump_delta = 1.0; - static double jump_timer = 0, jump_ss = 1.5, jump_h = 6; - if( GAME_JUMP_DOWN ) if( jump_timer == 0 ) jump_timer = editor_ss(); - jump_delta = clampf(editor_ss() - jump_timer, 0, jump_ss) * (1.0/jump_ss); - if( jump_delta >= 1 ) { jump_timer = 0; } - float y = ease_ping_pong( jump_delta, EASE_OUT|EASE_EXPO, EASE_OUT|EASE_CIRC); - girl_p.y = y * jump_h; - - // punch controller - float punch_delta = 1; - if( jump_delta >= 1 ) { - static vec3 origin; - static double punch_timer = 0, punch_ss = 0.5; - if( GAME_FIRE_DOWN ) if( punch_timer == 0 ) punch_timer = editor_ss(), origin = girl_p; - punch_delta = clampf(editor_ss() - punch_timer, 0, punch_ss) * (1.0/punch_ss); - if( punch_delta >= 1 ) { punch_timer = 0; } - else { - float x = ease_out_expo( punch_delta ); - vec3 fwd = rotate3q(vec3(0,0,1), eulerq(vec3(girl_r.x - 170,girl_r.y,girl_r.z))); - vec3 mix = mix3(girl_p, add3(origin,scale3(fwd,x*2)), x); - girl_p.x = mix.x, girl_p.z = mix.z; - } - } - - int modern_controller = 1; - int running = 0; - - // girl controller - - // locomotion vars - float speed = 0.2f * delta; - float yaw_boost = GAME_AXISY > 0 ? 1.0 : 1.75; - if(punch_delta < 1) yaw_boost = 0.0; // if firing... - else if(punch_delta <= 0.1) yaw_boost = 4.0; // unless initial punch chaining, extra yaw - - // old fashioned locomotion controller (boat controller) - if(!modern_controller) { - running = GAME_AXISY > 0; - - girl_r.x -= 170; - quat q = eulerq(girl_r); // += custom.pivot - vec3 rgt = rotate3q(vec3(1,0,0), q); - vec3 up = rotate3q(vec3(0,1,0), q); - vec3 fwd = rotate3q(vec3(0,0,1), q); - vec3 dir = scale3(fwd, speed * GAME_AXISY * (GAME_AXISY > 0 ? 2.0 : 0.5)); - girl_r.x += speed * 20.0 * yaw_boost * GAME_AXISX; // yaw - girl_p = add3(girl_p, dir); - girl_r.x += 170; - } - - // modern locomotion controller (mario 3d) - if(modern_controller) { - running = GAME_AXISX != 0 || GAME_AXISY != 0; - - camera_t *cam = camera_get_active(); - vec3 fwd = sub3(girl_p, cam->position); fwd.y = 0; fwd = norm3(fwd); - vec3 rgt = norm3(cross3(fwd, vec3(0,1,0))); - - // target - vec3 dir = add3( - scale3(fwd, GAME_AXISY), - scale3(rgt, GAME_AXISX) - ); dir.y = 0; dir = norm3(dir); - - // smoothing - static vec3 olddir; do_once olddir = dir; - dir = mix3(dir, olddir, 1 - (yaw_boost / 4.0) * 0.85); - olddir = dir; - - // vis - // ddraw_arrow(girl_p, add3(girl_p,scale3(dir,10))); - - // apply direction - girl_p = add3(girl_p, scale3(dir, speed * 2)); - - // apply rotation - { - girl_r.x -= 170; - quat q = eulerq(girl_r); - vec3 fwdg = rotate3q(vec3(0,0,1), q); - girl_r.x += 170; - - //float cosAngle = dot3(dir,fwdg); - //float angle = acos(cosAngle) * TO_DEG; - float angle = TO_DEG * ( atan2(fwdg.z, fwdg.x) - atan2(dir.z, dir.x)); - - if( !isnan(angle) ) { - girl_r.x -= angle; - while(girl_r.x> 180) girl_r.x-=360; - while(girl_r.x<-180) girl_r.x+=360; - } - } - } - - // anim loops - if( jump_delta < 1 ) { // jump/kick anim -#if 0 - girl.curframe = clampf(girl.curframe, 184, 202); - if( girl.curframe > 202-4 && GAME_FIRE_DOWN ) girl.curframe = 184+4; -#else - #define loopf(frame, min, max) (frame < min ? min : frame > max ? min + frame - max : frame) - if(girl.curframe >= 203) - girl.curframe = loopf(girl.curframe, 203, 220); - else - girl.curframe = clampf(girl.curframe, 184, 202); - if( girl.curframe > 202-4 && girl.curframe < 208 && GAME_FIRE_DOWN ) girl.curframe = 203; -#endif - } - else if( punch_delta < 1 ) { // punch anim - girl.curframe = clampf(girl.curframe, 90, 101); - if( girl.curframe > 101-6 && GAME_FIRE_DOWN ) girl.curframe = 101-6; - } - else if( running ) { - // loop running anim - if( girl.curframe < 65 ) girl.curframe = 65; - if( girl.curframe > 85 ) girl.curframe = 65; - } - else { // loop idle anim - if( girl.curframe > 59 ) girl.curframe = 0; - } - } - - profile("Game.collisions") { - bool punching = girl.curframe >= 90 && girl.curframe < 101; - bool air_kicking = girl.curframe >= 184 && girl.curframe < 202; - bool jump_kicking = girl.curframe >= 203 && girl.curframe < 220; - bool attacking = punching || air_kicking || jump_kicking; - - if( attacking ) { - aabb boxg = model_aabb(girl, girl_pivot); - aabb boxw = model_aabb(witch, witch_pivot); -#if 0 // halve aabb. ok - { - vec3 diag = sub3(boxg.max, boxg.min); - vec3 halve = scale3(diag, 0.25); - vec3 center = scale3(add3(boxg.min, boxg.max), 0.5); - boxg.min = sub3(center, halve); - boxg.max = add3(center, halve); - } -#endif - hit* h = aabb_hit_aabb(boxg, boxw); - if( h && GAME_FIRE ) { - vec3 dir = norm3(sub3(witch_p, girl_p)); - witch_p = add3(witch_p, mul3(dir,vec3(1,0,1))); - } - - if( editor_enabled && editor_ddraw ) { - ddraw_color_push(h ? RED : GREEN); - ddraw_aabb(boxw.min, boxw.max); - ddraw_aabb(boxg.min, boxg.max); - ddraw_color_pop(); - } - } - } - - camera_t *cam = camera_get_active(); - - profile("Game.Draw scene") { - // draw grid/axis - editor_obj_call0(&ground_size, fn_draw); - - // tick+draw girl - editor_obj_call0(&girl, fn_tick); - editor_obj_call0(&girl, fn_draw); - - // tick+draw witch - editor_obj_call0(&witch, fn_tick); - editor_obj_call0(&witch, fn_draw); - } - - if(!editor_enabled) continue; - - profile("Editor.Draw outline") { - - // handle (multi-)selection - ray *r = editor_pickup(); - if( r ) { - bool found = false; - bool multi_selection = input(KEY_LCTRL) || input(KEY_RCTRL); - for each_map_ptr(editor_state, void*, o, editor_state_t, ed) { - void *obj = *o; - if( obj == &ground_size ) continue; // @fixme: add ray+plane. also, bvh - - aabb *box = editor_obj_call0(obj, fn_aabb); - if( ray_hit_aabb(*r, *box)) { - editor_select(obj, multi_selection); - found = true; - } - } - if( !found ) - if( ray_hit_plane(*r, plane(vec3(0,0,0), vec3(0,1,0)) )) { - editor_select(&ground_size, multi_selection); - } - } - - if(!set_count(editor_selection)) continue; - - // draw silhouettes - fx_begin(); - for each_set_ptr(editor_selection, void*, o) { - void *obj = *o; - - editor_obj_call0(obj, fn_draw); - } - fx_end(); - - // draw gizmos, aabbs, markers, etc - for each_set_ptr(editor_selection, void*, o) { - void *obj = *o; - - // get transform - vec3 *p = editor_obj_get_property_by_name(obj, "position"); - vec3 *r = p ? editor_obj_get_property_by_name(obj, "rotation") : NULL; - vec3 *s = r ? editor_obj_get_property_by_name(obj, "scale") : NULL; - - // debugdraw - ddraw_ontop_push(0); - - // bounding box - aabb *box = editor_obj_call0(obj, fn_aabb); - if( box ) { - ddraw_color_push(YELLOW); - ddraw_aabb(box->min, box->max); - ddraw_color_pop(); - } - - // skeleton anim - // model_render_skeleton(model, pivot); - - // position marker - if( p ) { - static map(void*, vec3) prev_dir = 0; - do_once map_init_ptr(prev_dir); - vec3* dir = map_find_or_add(prev_dir, obj, vec3(1,0,0)); - - static map(void*, vec3) prev_pos = 0; - do_once map_init_ptr(prev_pos); - vec3* found = map_find_or_add(prev_pos, obj, *p), fwd = sub3(*p, *found); - if( (fwd.y = 0, len3sq(fwd)) ) { - *found = *p; - *dir = norm3(fwd); - } - - // float diameter = len2( sub2(vec2(box->max.x,box->max.z), vec2(box->min.x,box->min.z) )); - // float radius = diameter * 0.5; - ddraw_position_dir(*p, *dir, 1); - } - - ddraw_ontop(1); - - // transform gizmo - if( p && r && s ) { - gizmo(p,r,s); - } - - ddraw_ontop_pop(); - } - } + editor_frame(game); + editor_gizmos(2); } } - -// @todo -// editor_add_tick_before() -// editor_add_tick_after() -// editor_add_draw_before() -// editor_add_draw_after() diff --git a/tools/editor/editor3.h b/tools/editor/editor.h similarity index 100% rename from tools/editor/editor3.h rename to tools/editor/editor.h diff --git a/tools/editor/editor3.c b/tools/editor/editor3.c deleted file mode 100644 index 701e002..0000000 --- a/tools/editor/editor3.c +++ /dev/null @@ -1,404 +0,0 @@ -#define COOK_ON_DEMAND 1 // @fixme: these directives should be on client, not within v4k.dll -#define ENABLE_AUTOTESTS 1 -#define V4K_IMPLEMENTATION -#include "v4k.h" -#include "objtests.h" - -// ---------------------------------------------------------------------------- - -TODO("file_id: glow.hdr vs glow.png"); -TODO("reflect: iterate components+metas on REFLECT too, so they're properly saved/loaded"); - -TODO("edit: tree nav"); -TODO("edit: keys up,down,left,right -> move selection"); -TODO("edit: reordering/dragging items on a list. ctrl+cursors"); -TODO("edit: tab -> cycle next node of matching highlighted type"); -TODO("edit: ^C^V^X thru clipboard. ^C to serialize to clipboard."); -TODO("edit: ^Z^Y cursor too. also fix undo ordering"); -TODO("edit: ^S^L^N. load/save as filesystems"); -TODO("edit: ^B(toolbar)"); -TODO("edit: ^E prop single-view for multiple selections: should inspect common fields only"); -TODO("edit: two-column way (or Nth) for multiple selections"); -TODO("edit: tab/caps view, world + entity only, obj printf"); -TODO("edit: obj bounds, obj picking, obj collisions"); -TODO("edit: LMB object picking, RMB object serialization + log, floating ICONS bulb light"); -TODO("edit: worldtraveller component"); -TODO("edit: levelstreamer component"); -TODO("edit: OSC server/client port 2023"); -TODO("edit: add/rem entities, add/rem components, add/rem/pause/resume systems"); -TODO("edit: event loop: tick,draw*,spawn,delete,un/load from bvh stream,"); - -TODO("edit: overlay scene editor"); -TODO("edit: overlay0 artwork"); -TODO("edit: overlay1 world editor: gizmo, grid, snap, splats (@todo: fixed screen size gizmos)"); -TODO("edit: overlay2 script editor"); -TODO("edit: overlay3 track, spline, keys editor"); -TODO("edit: overlay4 node editor (shader/anim/bt/hfsm/material/audio/blueprints)"); -TODO("edit: overlay5 csv editor"); -TODO("edit: overlay6 bug/task editor"); - -TODO("gfx: tree traversal from game"); -TODO("gfx: bvh and collision queries"); -TODO("gfx: visibility and pvs queries"); - -TODO("obj: finish SYSTEMS and join queries"); -TODO("obj: make it work with /GL flag (VC)"); -TODO("obj: impl obj_mutate() ... deprecate?"); -TODO("obj: make() from mpack(m) + native(n)"); -TODO("obj: make() should save schema `[{mn`+version. and (m)pack and (n)ative should start with objtype"); -TODO("obj: super()"); -TODO("obj: lock()/trylock()/unlock()/barrier(N)"); -TODO("obj: diff()/patch()"); -TODO("obj: free obj_children()/payload"); -TODO("obj: free obj_components()/payload2"); - -TODO("pack: mp2json, json2mp"); -TODO("pack: simplify msgpack API, make it growth similar to va()") -#if 0 // v4k_pack proposal -static __thread char* mpin; -static __thread unsigned mpinlen; -static __thread char mpinbuf[256]; -static __thread char* mpout; -static __thread unsigned mpoutlen; -static __thread char mpoutbuf[256]; -#define PACKMSG(...) (msgpack_new(mpin = mpinbuf, mpinlen = sizeof(mpinbuf)), mpinlen = msgpack(__VA_ARGS__), cobs_encode(mpin, mpinlen, mpout = mpoutbuf, mpoutlen = cobs_bounds(mpinlen)), mpout) -#define UNPACKMSG(ptr,fmt,...) (mpin = (char*)ptr, mpinlen = strlen(ptr), mpout = mpoutbuf, mpoutlen = sizeof(mpoutbuf), mpoutlen = cobs_decode(mpin, mpinlen, mpout, mpoutlen), msgunpack_new(mpout, mpoutlen) && msgunpack(fmt, __VA_ARGS__)) -#endif - -#include "3rd_icon_mdi.h" -#include "v4k_editor.h" - -void editor_gizmos(int dim) { - // debugdraw - if(dim == 2) ddraw_push_2d(); - ddraw_ontop_push(0); - - // draw gizmos, aabbs, markers, etc - for each_map_ptr(*editor_selected_map(),void*,o,int,selected) { - if( !*selected ) continue; - - void *obj = *o; - - // get transform - vec3 *p = NULL; - vec3 *r = NULL; - vec3 *s = NULL; - aabb *a = NULL; - - for each_objmember(obj,TYPE,NAME,PTR) { - /**/ if( !strcmp(NAME, "position") ) p = PTR; - else if( !strcmp(NAME, "pos") ) p = PTR; - else if( !strcmp(NAME, "rotation") ) r = PTR; - else if( !strcmp(NAME, "rot") ) r = PTR; - else if( !strcmp(NAME, "scale") ) s = PTR; - else if( !strcmp(NAME, "sca") ) s = PTR; - else if( !strcmp(NAME, "aabb") ) a = PTR; - } - - ddraw_ontop(0); - - // bounding box 3d - if( 0 ) { - aabb box; - if( obj_hasmethod(*o, aabb) && obj_aabb(*o, &box) ) { - ddraw_color_push(YELLOW); - ddraw_aabb(box.min, box.max); - ddraw_color_pop(); - } - } - - // position marker - if( p ) { - static map(void*, vec3) prev_dir = 0; - do_once map_init_ptr(prev_dir); - vec3* dir = map_find_or_add(prev_dir, obj, vec3(1,0,0)); - - static map(void*, vec3) prev_pos = 0; - do_once map_init_ptr(prev_pos); - vec3* found = map_find_or_add(prev_pos, obj, *p), fwd = sub3(*p, *found); - if( (fwd.y = 0, len3sq(fwd)) ) { - *found = *p; - *dir = norm3(fwd); - } - - // float diameter = len2( sub2(vec2(box->max.x,box->max.z), vec2(box->min.x,box->min.z) )); - // float radius = diameter * 0.5; - ddraw_position_dir(*p, *dir, 1); - } - - ddraw_ontop(1); - - // transform gizmo - if( p && r && s ) { - gizmo(p,r,s); - } - } - - ddraw_ontop_pop(); - if(dim == 2) ddraw_pop_2d(); -} - -// ---------------------------------------------------------------------------- -// demo - -typedef struct lit { OBJ - vec3 pos; - vec3 dir; - int type; -} lit; - -int lit_aabb(lit *obj, aabb *box) { - *box = aabb( vec3(obj->pos.x-16,obj->pos.y-16,0), vec3(obj->pos.x+16,obj->pos.y+16,1) ); - return 1; -} -const char *lit_icon(lit *obj) { - const char *icon = - obj->type == 0 ? ICON_MD_WB_IRIDESCENT : - obj->type == 1 ? ICON_MD_WB_INCANDESCENT : - obj->type == 2 ? ICON_MD_FLARE : - obj->type == 3 ? ICON_MD_WB_SUNNY : ""; - return icon; -} -int lit_edit(lit *obj) { - const char *all_icons = - ICON_MD_WB_IRIDESCENT - ICON_MD_WB_INCANDESCENT - ICON_MD_FLARE - ICON_MD_WB_SUNNY - - ICON_MD_LIGHT_MODE - ICON_MD_LIGHT - - ICON_MD_FLASHLIGHT_OFF - ICON_MD_FLASHLIGHT_ON - ICON_MD_HIGHLIGHT - ICON_MD_HIGHLIGHT_ALT - ICON_MD_LIGHTBULB - ICON_MD_LIGHTBULB_OUTLINE - ICON_MD_NIGHTLIGHT - ICON_MD_NIGHTLIGHT_ROUND - - // MDI - ICON_MDI_LIGHTBULB_ON_OUTLINE // generic - ICON_MDI_WALL_SCONCE_ROUND // - ICON_MDI_WALL_SCONCE_FLAT // emissive - ICON_MDI_CEILING_LIGHT // spotlight - ICON_MDI_TRACK_LIGHT // spotlight - ICON_MDI_WEATHER_SUNNY // directional - ICON_MDI_LIGHTBULB_FLUORESCENT_TUBE_OUTLINE - ; - // editor_symbol(obj->pos.x+16,obj->pos.y-32,all_icons); - if( editor_selected(obj) ) { - obj->pos.x += input(KEY_RIGHT) - input(KEY_LEFT); - obj->pos.y += input(KEY_DOWN) - input(KEY_UP); - obj->type = (obj->type + !!input_down(KEY_SPACE)) % 4; - } - editor_symbol(obj->pos.x,obj->pos.y,lit_icon(obj)); - - - - return 1; -} - -OBJTYPEDEF(lit,200); - -AUTORUN { - STRUCT(lit, vec3, pos); - STRUCT(lit, vec3, dir); - STRUCT(lit, int, type); - EXTEND(lit, edit,icon,aabb); -} - -typedef struct kid { OBJ - int kid; - vec2 pos; - vec2 vel; - float angle; - vec4 color; - int controllerid; - - // --- private - char *filename; - unsigned rgba_; - texture_t texture_; -} kid; - -void kid_ctor(kid *obj) { - obj->kid = randi(0,3); - obj->pos = vec2(randi(0, window_width()), randi(0, window_height())); - obj->vel.x = obj->vel.y = 100 + 200 * randf(); - obj->controllerid = randi(0,3); - - obj->texture_ = texture(obj->filename, TEXTURE_RGBA|TEXTURE_LINEAR); - obj->rgba_ = rgbaf( obj->color.x/255.0, obj->color.y/255.0, obj->color.z/255.0, obj->color.w/255.0 ); -} -void kid_tick(kid *obj, float dt) { - // add velocity to position - vec2 off = vec2( input(KEY_RIGHT)-input(KEY_LEFT), input(KEY_DOWN)-input(KEY_UP) ); - obj->pos = add2(obj->pos, scale2(mul2(obj->vel, off), dt * (obj->controllerid == 0))); - - // wrap at screen boundaries - const int appw = window_width(), apph = window_height(); - if( obj->pos.x < 0 ) obj->pos.x += appw; else if( obj->pos.x > appw ) obj->pos.x -= appw; - if( obj->pos.y < 0 ) obj->pos.y += apph; else if( obj->pos.y > apph ) obj->pos.y -= apph; -} -void kid_draw(kid *obj) { - // 4x4 tilesheet - int col = (((int)obj->kid) % 4); - int row = (((int)obj->pos.x / 10 ^ (int)obj->pos.y / 10) % 4); - float position[3] = {obj->pos.x,obj->pos.y,obj->pos.y}; // position(x,y,depth: sort by Y) - float offset[2]={0,0}, scale[2]={1,1}; - float coords[3]={col * 4 + row,4,4}; // num_frame(x) in a 4x4(y,z) spritesheet - sprite_sheet(obj->texture_, coords, position, obj->angle*TO_DEG, offset, scale, - 0, obj->rgba_, 0); // is_additive, tint color, resolution independant -} -int kid_aabb(kid *obj, aabb *box) { - *box = aabb( vec3(obj->pos.x-16,obj->pos.y-16,0), vec3(obj->pos.x+16,obj->pos.y+16,1) ); - return 1; -} -int kid_edit(kid *obj) { - aabb box; - if( kid_aabb(obj, &box) ) { - ddraw_color_push(YELLOW); - ddraw_push_2d(); - ddraw_aabb(box.min, box.max); - ddraw_pop_2d(); - ddraw_color_pop(); - } - if( editor_selected(obj) ) { - obj->pos.x += input(KEY_RIGHT) - input(KEY_LEFT); - obj->pos.y += input(KEY_DOWN) - input(KEY_UP); - - editor_symbol(obj->pos.x+16,obj->pos.y-16,ICON_MD_VIDEOGAME_ASSET); - } - return 1; -} -void kid_menu(kid *obj, const char *argv) { - ui_label("Private section"); - ui_color4("Color_", &obj->color.x); - ui_texture("Texture_", obj->texture_); - ui_separator(); - - obj->rgba_ = rgbaf( obj->color.x/255.0, obj->color.y/255.0, obj->color.z/255.0, obj->color.w/255.0 ); -} - -OBJTYPEDEF(kid,201); - -AUTORUN { - // reflect - STRUCT(kid, int, kid); - STRUCT(kid, vec2, pos); - STRUCT(kid, vec2, vel); - STRUCT(kid, float, angle, "Tilt degrees"); - STRUCT(kid, vec4, color, "Tint color"); - STRUCT(kid, char*, filename, "Filename" ); - EXTEND(kid, ctor,tick,draw,aabb,edit,menu); -} - -void game(unsigned frame, float dt, double t) { - static kid *root; - static kid *o1; - static kid *o2; - static camera_t cam; - if( !frame ) { - // init camera (x,y) (z = zoom) - cam = camera(); - cam.position = vec3(window_width()/2,window_height()/2,1); - camera_enable(&cam); - - root = obj_make( - "[kid]\n" - "filename=spriteSheetExample.png\n" - "pos=5,2\n" - "angle=pi/12\n" - "color=255, 255, 192, 255\n" - ); - o1 = obj_make( - "[kid]\n" - "filename=spriteSheetExample.png\n" - "pos=1,100\n" - "angle=pi/12\n" - "color=255, 192, 192, 255\n" - ); - o2 = obj_make( - "[kid]\n" - "filename=spriteSheetExample.png\n" - "pos=50,200\n" - "angle=pi/12\n" - "color=192, 192, 255, 255\n" - ); - - //obj_setname(root, "root"); - obj_setname(o1, "o1"); - obj_setname(o2, "o2"); - - obj*o3 = obj_make( - "[lit]\n" - "pos=300,300,0\n" - "type=1" - ); - obj*o4 = obj_new_ext(obj, "o4"); - obj*o5 = obj_new_ext(obj, "o5"); - - obj_attach(root, o1); - obj_attach(o1, o2); - obj_attach(o2, o3); - obj_attach(o1, o4); - obj_attach(root, o5); - - editor_watch(root); - } - - // camera panning (x,y) & zooming (z) - if(0) - if( !ui_hover() && !ui_active() ) { - if( input(MOUSE_L) ) cam.position.x -= input_diff(MOUSE_X); - if( input(MOUSE_L) ) cam.position.y -= input_diff(MOUSE_Y); - cam.position.z += input_diff(MOUSE_W) * 0.1; // cam.p.z += 0.001f; for tests - } - - // tick game - if( dt ) { - kid_tick(root, dt); - kid_tick(o1, dt); - kid_tick(o2, dt); - - root->angle = 5 * sin(t+dt); - } - - // fps camera - bool active = 0; - if( input_down(MOUSE_M) || input_down(MOUSE_R) ) { - active = ui_hover() || ui_active() || gizmo_active() || editor_first_selected() ? false : true; - } else { - active = !window_has_cursor() && (input(MOUSE_M) || input(MOUSE_R)); - } - window_cursor( !active ); - if( active ) cam.speed = clampf(cam.speed + input_diff(MOUSE_W) / 10, 0.05f, 5.0f); - vec2 mouse = scale2(vec2(input_diff(MOUSE_X), -input_diff(MOUSE_Y)), 0.2f * active); - vec3 wasdecq = scale3(vec3(input(KEY_D)-input(KEY_A),input(KEY_E)-(input(KEY_C)||input(KEY_Q)),input(KEY_W)-input(KEY_S)), cam.speed); - camera_moveby(&cam, wasdecq); - camera_fps(&cam, mouse.x,mouse.y); - - // draw world - ddraw_ontop_push(0); - ddraw_grid(0); - ddraw_ontop_pop(); - ddraw_flush(); - - // draw game - kid_draw(root); - kid_draw(o1); - kid_draw(o2); -} - -int main(){ - window_title("Editor " EDITOR_VERSION); - window_create(flag("--transparent") ? 101 : 80,0); - window_icon("scale-ruler-icon.png"); - - while( window_swap() ) { - editor_frame(game); - editor_gizmos(2); - } -} diff --git a/tools/editor/objtests.h b/tools/editor/objtests.h index 50f1345..7284886 100644 --- a/tools/editor/objtests.h +++ b/tools/editor/objtests.h @@ -26,13 +26,8 @@ int boy_tick(boy* self) { printf("%p boy tick, hp:%f\n", self, self->hp); retu char* boy_save(boy *self) { return obj_saveini(self); } // PACKMSG("ssf", "boy_v1", self->name, self->hp); } AUTOTEST { - obj_extend(orc, ctor); - obj_extend(orc, tick); - obj_extend(orc, save); - - obj_extend(boy, ctor); - obj_extend(boy, tick); - obj_extend(boy, save); + EXTEND(orc, ctor,tick,save); + EXTEND(boy, ctor,tick,save); // instance gameobjs diff --git a/tools/editor/stdio2.c b/tools/editor/stdio2.c new file mode 100644 index 0000000..e6817de --- /dev/null +++ b/tools/editor/stdio2.c @@ -0,0 +1,297 @@ +#include +#include +#include +#include +#include +#include + +#if 1 +#define V4K_IMPLEMENTATION +#include "/prj/v4k/engine/joint/v4k.h" +#define vl tempvl +#define test2 test2_ +#else +#define vl(fmt, list) fmt // @fixme + +static unsigned array_c; +#define array(t) t* +#define array_resize(arr, c) ( (arr) = vrealloc((arr), (c) * sizeof(0[arr])) ) +#define array_push(arr, v) ( array_c = array_count(arr), array_c[(arr) = vrealloc((arr), (array_c + 1) * sizeof(0[arr]))] = (v) ) +#define array_pop(arr) ( (arr) ? (arr) = vrealloc((arr), (array_count(arr)-1) * sizeof(0[arr])) : (0) ) +#define array_count(arr) (int)( (arr) ? vlen(arr) / sizeof(0[arr]) : sizeof(0[arr]) - sizeof(0[arr]) ) +#define array_free(arr) ( (arr) ? (vrealloc(arr, 0), 1) : 0 ) + +void* vrealloc( void* p, size_t sz ) { + if( !sz ) { + if( p ) { + size_t *ret = (size_t*)p - 2; + ret[0] = 0; + ret[1] = 0; + realloc( ret, 0 ); + } + return 0; + } else { + size_t *ret; + if( !p ) { + ret = (size_t*)realloc( 0, sizeof(size_t) * 2 + sz ); + ret[0] = sz; + ret[1] = 0; + } else { + ret = (size_t*)p - 2; + size_t osz = ret[0]; + size_t ocp = ret[1]; + if( sz <= (osz + ocp) ) { + ret[0] = sz; + ret[1] = ocp - (sz - osz); + } else { + ret = (size_t*)realloc( ret, sizeof(size_t) * 2 + sz * 1.75 ); + ret[0] = sz; + ret[1] = (size_t)(sz * 1.75) - sz; + } + } + return &ret[2]; + } +} +size_t vlen( void* p ) { + return p ? 0[ (size_t*)p - 2 ] : 0; +} +#endif + + + + +typedef struct FILE2 { + FILE *fp; + int64_t pos; + int errno_; + array(char) arr; +} FILE2; + + +void *tmpfile2(void) { + FILE2 *mem = (FILE2*)calloc(1, sizeof(FILE2)); + mem->fp = tmpfile(); + return mem; +} +void *fopen2(void *buf, const char *mode) { + FILE2 *mem = (FILE2*)calloc(1, sizeof(FILE2)); + + if( mode[0] != 'm' && buf ) { + mem->fp = fopen((const char *)buf, mode); + } + + return (FILE*)mem; +} +int fclose2(void* handler) { + FILE2 *mem = (FILE2*)handler; + if( mem->arr ) { + array_free(mem->arr); + } + if( mem->fp ) { + fclose(mem->fp); + } + memset(mem, 0, sizeof(FILE2)); + free(mem); + return 0; +} +// r/w +int fwrite2(const void *buf, int size, int count, void *handler) { + FILE2 *mem = handler; + + if( mem->fp ) return fwrite(buf, size, count, mem->fp); + + size *= count; + size_t available = array_count(mem->arr) - mem->pos; + + if( size > available ) { + if( 1 ) { // if growthable + array_resize(mem->arr, size - available); + } else { + size = available; + } + } + memcpy(mem->arr, buf, size); + mem->pos += size; + + return count; +} +int fread2(void *buf, int size, int count, void *handler) { + FILE2 *mem = handler; + if( mem->fp ) return fread(buf, size, count, mem->fp); + + size_t available = array_count(mem->arr) - mem->pos; + size_t total = size * count; + + while( (total/size) > count ) { + total -= size; + } + if( total > 0 ) { + memcpy(buf, mem->arr, total); + mem->pos += total; + return total / size; + } + return 0; +} +// cursor +int64_t ftello2(void *handler) { + FILE2 *mem = handler; + if( mem->fp ) return ftell(mem->fp); + return mem->pos; +} +int64_t fseeko2(void *handler, int64_t offset, int whence) { + FILE2 *mem = handler; + if( mem->fp ) return fseek(mem->fp, offset, whence); + /**/ if( whence == SEEK_SET ) mem->pos = offset; + else if( whence == SEEK_CUR ) mem->pos += offset; + else if( whence == SEEK_END ) mem->pos = array_count(mem->arr) + offset; // - 1 - offset; + else return -1; + if( mem->pos >= array_count(mem->arr) ) { + return -1; + } + return mem->pos; // (fpos_t)mem->pos; +} +// buffering +void setbuf2(void *handler, char *buffer) { + FILE2 *mem = handler; + if( mem->fp ) setbuf(mem->fp, buffer); +} +int setvbuf2(void *handler, char *buffer, int mode, size_t size) { + FILE2 *mem = handler; + if( mem->fp ) return setvbuf2(mem->fp, buffer, mode, size); + return 0; +} +int fflush2(void *handler) { + FILE2 *mem = handler; + if( mem->fp ) return fflush(mem->fp); + return 0; +} +int ungetc2(int ch, void *handler) { + FILE2 *mem = handler; + if( mem->fp ) return ungetc(ch, mem->fp); + #if 0 + // todo: + + pushes the uint8_t character onto the specified stream so that + it's available for the next read operation. + + #endif + return -1; +} +// internal +array(char)* fdata(void *handler) { + FILE2 *mem = handler; + if( mem->fp ) return NULL; + return &mem->arr; +} + + + +#define FILE void +#define tmpfile tmpfile2 +#define fopen fopen2 +#define ftello ftello2 +#define ftell (int)ftello2 +#define fgetpos fgetpos2 +#define fseeko fseeko2 +#define fseek (int)fseeko2 +#define fsetpos fsetpos2 +#define rewind rewind2 +#define fread fread2 +#define fgets fgets2 +#define fgetc fgetc2 +#define getc getc2 +#define fwrite fwrite2 +#define fputs fputs2 +#define fputc fputc2 +#define putc putc2 +#define ferror ferror2 +#define feof feof2 +#define clearerr clearerr2 +#define vfprintf vfprintf2 // @fixme: return type +#define fprintf fprintf2 +#define setbuf setbuf2 +#define setvbuf setvbuf2 +#define fflush fflush2 +#define ungetc ungetc2 +#define fclose fclose2 + +// not doing: +#define freopen(filename,mode,handler) freopen(filename,mode, ((FILE2*)(handler))->fp ) +#define freopen(filename,mode,handler) freopen(filename,mode, ((FILE2*)(handler))->fp ) +#define fscanf(handler,format,...) fscanf(((FILE2*)(handler))->fp, format, __VA_ARGS__) + + +// format +// int fscanf(FILE *fp, const char *format, ...); +int vfprintf(FILE *fp, const char *format, va_list args) { // @fixme: return type + const char *str = vl(format, args); + return fwrite(str, strlen(str), 1, fp) == 1; +} +int fprintf(FILE *fp, const char *fmt, ...) { + va_list va; + va_start(va, fmt); + int rc = vfprintf(fp, fmt, va); + va_end(va); + return rc; +} + +// error handling +int feof(FILE *fp) { return ((FILE2*)fp)->errno_ == EOF; } +int ferror(FILE *fp) { return ((FILE2*)fp)->errno_; } +void clearerr(FILE *fp) { ((FILE2*)fp)->errno_ = 0; } + +// aliases +int fgetpos(FILE *fp, fpos_t *pos) { return (*pos = ftell(fp)) != -1L; } +int fsetpos(FILE *fp, const fpos_t *pos) { return fseek(fp, *pos, SEEK_SET); } +void rewind(FILE *fp) { fseek(fp, 0L, SEEK_SET); } + +// aliases +int fgetc(FILE *fp) { int ch = EOF; return fread(&ch, sizeof(char), 1, fp) != 1 ? EOF : ch; } +int fputc(int ch, FILE *fp) { return fwrite(&ch, sizeof(char), 1, fp) == 1; } +int getc(FILE *fp) { return fgetc(fp); } +int putc(int ch, FILE *fp) { return fputc(ch, fp); } +int fputs(const char *str, FILE *fp) { return fwrite(str, strlen(str), 1, fp) == 1 && fwrite("\n",1,1,fp) == 1; } +char* fgets(char *str, int n, FILE *fp) { + char *cpy = str; + int ch = EOF; + while( n && (ch = fgetc(fp)) != EOF && !strchr("\r\n", ch) ) *str++ = ch, --n; + while( n && (ch = fgetc(fp)) != EOF && strchr("\r\n", ch) ) *str++ = ch, --n; + return ch == EOF ? NULL : cpy; +} + + +#include + +void test1() { + char buf[256] = {0}; + FILE *fp = fopen(__FILE__,"rb"); + assert(fp); + assert(fgets(buf, sizeof(buf), fp)); + assert(~puts(buf)); + assert(0 == fclose(fp)); + assert(~puts("Ok")); +} + +void test2() { + const char *buf = "hello world"; + FILE *fp = fopen(NULL, "rb"); + assert(fwrite(buf, strlen(buf), 1, fp)); + puts(*fdata(fp)); + assert(0 == fclose(fp)); + assert(~puts("Ok")); +} + +void test3() { + FILE *fp = fopen(NULL, "rb"); + assert(fprintf(fp, "hello %s! %d\n", "world", 123)); + puts(*fdata(fp)); + assert(0 == fclose(fp)); + assert(~puts("Ok")); +} + +int main() { + test1(); + test2(); + test3(); +} + diff --git a/tools/editor/v4k_editor.h b/tools/editor/v4k_editor.h index 60d7500..af1a925 100644 --- a/tools/editor/v4k_editor.h +++ b/tools/editor/v4k_editor.h @@ -410,13 +410,17 @@ void editor_inspect(obj *o) { ui_label_icon_highlight = editor_changed(PTR); // @hack: remove ui_label_icon_highlight hack char *label = va(ICON_MD_UNDO "%s", NAME); int changed = 0; - /**/ if( !strcmp(TYPE,"float") ) changed = ui_float(label, PTR); - else if( !strcmp(TYPE,"int") ) changed = ui_int(label, PTR); - else if( !strcmp(TYPE,"vec2") ) changed = ui_float2(label, PTR); - else if( !strcmp(TYPE,"vec3") ) changed = ui_float3(label, PTR); - else if( !strcmp(TYPE,"vec4") ) changed = ui_float4(label, PTR); - else if( !strcmp(TYPE,"color") ) changed = ui_color4(label, PTR); - else if( !strcmp(TYPE,"char*") ) changed = ui_string(label, PTR); + /**/ if( !strcmp(TYPE,"float") ) changed = ui_float(label, PTR); + else if( !strcmp(TYPE,"int") ) changed = ui_int(label, PTR); + else if( !strcmp(TYPE,"vec2") ) changed = ui_float2(label, PTR); + else if( !strcmp(TYPE,"vec3") ) changed = ui_float3(label, PTR); + else if( !strcmp(TYPE,"vec4") ) changed = ui_float4(label, PTR); + else if( !strcmp(TYPE,"rgb") ) changed = ui_color3(label, PTR); + else if( !strcmp(TYPE,"rgba") ) changed = ui_color4(label, PTR); + else if( !strcmp(TYPE,"color") ) changed = ui_color4f(label, PTR); + else if( !strcmp(TYPE,"color3f") ) changed = ui_color3f(label, PTR); + else if( !strcmp(TYPE,"color4f") ) changed = ui_color4f(label, PTR); + else if( !strcmp(TYPE,"char*") ) changed = ui_string(label, PTR); else ui_label2(label, va("(%s)", TYPE)); // INFO instead of (TYPE)? if( changed ) { editor_setchanged(PTR, 1); @@ -600,8 +604,10 @@ void editor_frame( void (*game)(unsigned, float, double) ) { const char *ICON_PL4Y = window_has_pause() ? ICON_MDI_PLAY : ICON_MDI_PAUSE; const char *ICON_SKIP = window_has_pause() ? ICON_MDI_STEP_FORWARD/*ICON_MDI_SKIP_NEXT*/ : ICON_MDI_FAST_FORWARD; + int is_borderless = !glfwGetWindowAttrib(window, GLFW_DECORATED); int ingame = !editor.active; - UI_MENU(14, \ + static double clicked_titlebar = 0; + UI_MENU(14+is_borderless, \ if(ingame) ui_disable(); \ UI_MENU_ITEM(ICON_MDI_FILE_TREE, editor_send("scene")) \ if(ingame) ui_enable(); \ @@ -610,7 +616,7 @@ void editor_frame( void (*game)(unsigned, float, double) ) { UI_MENU_ITEM(ICON_MDI_STOP, editor_send("stop")) \ UI_MENU_ITEM(ICON_MDI_EJECT, editor_send("eject")) \ UI_MENU_ITEM(STATS, stats_mode = (++stats_mode) % 3) \ - UI_MENU_ALIGN_RIGHT(32+32+32+32+32+32+34) \ + UI_MENU_ALIGN_RIGHT(32+32+32+32+32+32+34 + 32*is_borderless, clicked_titlebar = time_ms()) \ if(ingame) ui_disable(); \ UI_MENU_ITEM(ICON_MD_FOLDER_SPECIAL, editor_send("browser")) \ UI_MENU_ITEM(ICON_MDI_SCRIPT_TEXT, editor_send("script")) \ @@ -623,6 +629,23 @@ void editor_frame( void (*game)(unsigned, float, double) ) { UI_MENU_ITEM(ICON_MD_CLOSE, editor_send("quit")) \ ); + if( is_borderless ) { + static vec3 drag = {0}; + if( clicked_titlebar ) { + static double clicks = 0; + if( input_up(MOUSE_L) ) ++clicks; + if( input_up(MOUSE_L) && clicks == 2 ) window_visible(false), window_maximize( window_has_maximize() ^ 1 ), window_visible(true); + if( (time_ms() - clicked_titlebar) > 400 ) clicks = 0, clicked_titlebar = 0; + + if( input_down(MOUSE_L) ) drag = vec3(input(MOUSE_X), input(MOUSE_Y), 1); + } + if( drag.z *= !input_up(MOUSE_L) ) { + int wx = 0, wy = 0; + glfwGetWindowPos(window_handle(), &wx, &wy); + glfwSetWindowPos(window_handle(), wx + input(MOUSE_X) - drag.x, wy + input(MOUSE_Y) - drag.y); + } + } + if( !editor.active ) return; // draw edit view (gizmos, position markers, etc). diff --git a/tools/editor/v4k_editor6_script.h b/tools/editor/v4k_editor6_script.h index 5e50f97..c63c927 100644 --- a/tools/editor/v4k_editor6_script.h +++ b/tools/editor/v4k_editor6_script.h @@ -7,14 +7,18 @@ #include "3rd_lite.h" // } +TODO("new: integrate with Art/ browser") TODO("bug: lite key bindings are being sent to editor") -TODO("eval: https://github.com/Jipok/lite-plugins") -TODO("eval: https://github.com/drmargarido/linters") -TODO("eval: https://github.com/monolifed/theme16") -TODO("eval: https://github.com/takase1121/lite-contextmenu ") -TODO("eval: https://github.com/drmargarido/TodoTreeView") -TODO("eval: https://github.com/takase1121/lite-nagbar") -TODO("eval: https://github.com/rxi/console") +TODO("bug: not sending quit signal to lite neither at window close nor editor close (see: temporary files)") +TODO("bug: missing search results window") +TODO("bug: missing code completions popup") +// TODO("eval: https://github.com/drmargarido/linters") +// TODO("eval: https://github.com/monolifed/theme16") +// TODO("eval: https://github.com/vincens2005/lite-formatters") +// https://github.com/takase1121/lite-xl-img +// https://github.com/takase1121/lite-xl-finder +// https://github.com/rxi/lite/commit/236a585756cb9fa70130eee6c9a604780aced424 > suru.png +// https://github.com/rxi/lite/commit/f90b00748e1fe1cd2340aaa06d2526a1b2ea54ec int ui_texture_fit(texture_t t, struct nk_rect bounds) { // allocate complete window space @@ -56,7 +60,7 @@ int editor_scripted(int window_mode) { } unsigned lt_none = 0u; - unsigned lt_all = ~0u & ~(GLEQ_WINDOW_MOVED|GLEQ_WINDOW_RESIZED/*|GLEQ_WINDOW_REFRESH*/); + unsigned lt_all = ~0u & ~(GLEQ_WINDOW_MOVED/*|GLEQ_WINDOW_RESIZED|GLEQ_WINDOW_REFRESH*/); lt_events = lt_none; int mouse_in_rect = 0; @@ -80,7 +84,7 @@ int editor_scripted(int window_mode) { // fullscreen_quad_rgb( lt_getsurface(0)->t, 1.2f ); ui_texture_fit(lt_getsurface(0)->t, bounds); - if( !!nk_input_is_mouse_hovering_rect(&ui_ctx->input, bounds) ) { + if( !!nk_input_is_mouse_hovering_rect(&ui_ctx->input, ((struct nk_rect){lt_wx+5,lt_wy+5,lt_ww-10,lt_wh-10})) ) { lt_events &= ~(1<<31); // dont cursor shape } diff --git a/tools/editor/v4k_sprite.c b/tools/editor/v4k_sprite.c new file mode 100644 index 0000000..a0a7e10 --- /dev/null +++ b/tools/editor/v4k_sprite.c @@ -0,0 +1,455 @@ +#include "engine/v4k.c" + +// texture_t texture_createclip(unsigned cx,unsigned cy,unsigned cw,unsigned ch, unsigned tw,unsigned th,unsigned tn,void *pixels, unsigned flags) { +// return texture_create(tw,th,tn,pixels,flags); +// static array(unsigned) clip = 0; +// array_resize(clip, cw*ch*4); +// for( unsigned y = 0; y < ch; ++y ) +// memcpy((char *)clip + (0+(0+y)*cw)*tn, (char*)pixels + (cx+(cy+y)*tw)*tn, cw*tn); +// return texture_create(cw,ch,tn,clip,flags); +// } + +#define array_reserve_(arr,x) (array_count(arr) > (x) ? (arr) : array_resize(arr, 1+(x))) + +#define ui_array(label,type,ptr) do { \ + int changed = 0; \ + if( ui_collapse(label, va(#type "%p",ptr)) ) { \ + char label_ex[8]; \ + for( int idx = 0, iend = array_count(*(ptr)); idx < iend; ++idx ) { \ + type* it = *(ptr) + idx; \ + snprintf(label_ex, sizeof(label_ex), "[%d]", idx); \ + changed |= ui_##type(label_ex, it); \ + } \ + ui_collapse_end(); \ + } \ +} while(0) + +int ui_vec2i(const char *label, vec2i *v) { return ui_unsigned2(label, (unsigned*)v); } +int ui_vec3i(const char *label, vec3i *v) { return ui_unsigned3(label, (unsigned*)v); } +int ui_vec2(const char *label, vec2 *v) { return ui_float2(label, (float*)v); } +int ui_vec3(const char *label, vec3 *v) { return ui_float3(label, (float*)v); } +int ui_vec4(const char *label, vec4 *v) { return ui_float4(label, (float*)v); } + +char *trimspace(char *str) { + for( char *s = str; *s; ++s ) + if(*s <= 32) memmove(s, s+1, strlen(s)); + return str; +} + +char *file_parent(const char *f) { // folder/folder/abc + char *p = file_path(f); // folder/folder/ + char *last = strrchr(p, '/'); // ^ + if( !last ) return p; // return parent if no sep + *last = '\0'; // folder/folder + last = strrchr(p, '/'); // ^ + return last ? last + 1 : p; // return parent if no sep +} + +int ui_obj(const char *fmt, obj *o) { + int changed = 0, item = 1; + for each_objmember(o, TYPE,NAME,PTR) { + char *label = va(fmt, NAME); + /**/ if(!strcmp(TYPE,"float")) { if(ui_float(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"int")) { if(ui_int(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"unsigned")) { if(ui_unsigned(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"vec2")) { if(ui_float2(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"vec3")) { if(ui_float3(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"vec4")) { if(ui_float4(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"rgb")) { if(ui_color3(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"rgba")) { if(ui_color4(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"color")) { if(ui_color4f(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"color3f")) { if(ui_color3f(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"color4f")) { if(ui_color4f(label, PTR)) changed = item; } + else if(!strcmp(TYPE,"char*")) { if(ui_string(label, PTR)) changed = item; } + else ui_label2(label, va("(%s)", TYPE)); // INFO instead of (TYPE)? + ++item; + } + return changed; +} + + +TODO("serialize array(types)") +TODO("serialize map(char*,types)") +TODO("serialize map(int,types)") +TODO("sprite: solid platforms, one-way platforms") +TODO("sprite: shake left-right, up-down") +TODO("sprite: coyote time") +TODO("sprite: jump buffering before grounded") +TODO("sprite: double jump, wall sliding, wall climbing") +TODO("sprite: hitbox for enemies -> wall detection") + +#define OBJTYPEDEF2(...) OBJTYPEDEF(__VA_ARGS__); AUTORUN + +typedef unsigned quark_t; + +typedef struct atlas_frame_t { + unsigned delay; + vec4 sheet; + vec2 anchor; // @todo + array(vec3i) indices; + array(vec2) coords; + array(vec2) uvs; +} atlas_frame_t; + +typedef struct atlas_anim_t { + quark_t name; + array(unsigned) frames; +} atlas_anim_t; + +typedef struct atlas_t { + texture_t tex; + + array(atlas_frame_t) frames; + array(atlas_anim_t) anims; + + quarks_db db; +} atlas_t; + +int ui_atlas_frame(atlas_frame_t *f) { + ui_unsigned("delay", &f->delay); + ui_vec4("sheet", &f->sheet); + ui_array("indices", vec3i, &f->indices); + ui_array("coords", vec2, &f->coords); + ui_array("uvs", vec2, &f->uvs); + return 0; +} + +int ui_atlas(atlas_t *a) { + int changed = 0; + ui_texture(NULL, a->tex); + for( int i = 0; i < array_count(a->anims); ++i ) { + if( ui_collapse(quark_string(&a->db, a->anims[i].name), va("%p%d", a, a->anims[i].name) ) ) { + changed = i+1; + for( int j = 0; j < array_count(a->anims[i].frames); ++j ) { + if( ui_collapse(va("[%d]",j), va("%p%d.%d", a, a->anims[i].name,j) ) ) { + ui_unsigned("Frame", &a->anims[i].frames[j]); + ui_atlas_frame(a->frames + a->anims[i].frames[j]); + ui_collapse_end(); + } + } + ui_collapse_end(); + } + } + return changed; +} + +void atlas_destroy(atlas_t *a) { + if( a ) { + texture_destroy(&a->tex); + memset(a, 0, sizeof(atlas_t)); + } +} +atlas_t atlas_create(const char *inifile, unsigned flags) { + atlas_t a = {0}; + int padding = 0, border = 0; + + ini_t kv = ini(inifile); + for each_map(kv, char*,k, char*,v ) { + unsigned index = atoi(k); + /**/ if( strend(k, ".name") ) { + array_reserve_(a.anims, index); + + a.anims[index].name = quark_intern(&a.db, v); + } + else if( strend(k, ".frames") ) { + array_reserve_(a.anims, index); + + array(char*) pairs = strsplit(v, ","); + for( int i = 0, end = array_count(pairs); i < end; i += 2 ) { + unsigned frame = atoi(pairs[i]); + unsigned delay = atoi(pairs[i+1]); + + array_reserve_(a.frames, frame); + a.frames[frame].delay = delay; + + array_push(a.anims[index].frames, frame); + } + } + else if( strend(k, ".sheet") ) { + array_reserve_(a.frames, index); + + vec4 sheet = atof4(v); //x,y,x2+2,y2+2 -> x,y,w,h (for 2,2 padding) + a.frames[index].sheet = vec4(sheet.x,sheet.y,sheet.z-sheet.x,sheet.w-sheet.y); + } + else if( strend(k, ".indices") ) { + array_reserve_(a.frames, index); + + const char *text = v; + array(char*) tuples = strsplit(text, ","); + for( int i = 0, end = array_count(tuples); i < end; i += 3 ) { + unsigned p1 = atoi(tuples[i]); + unsigned p2 = atoi(tuples[i+1]); + unsigned p3 = atoi(tuples[i+2]); + array_push(a.frames[index].indices, vec3i(p1,p2,p3)); + } + } + else if( strend(k, ".coords") ) { + array_reserve_(a.frames, index); + + const char *text = v; + array(char*) pairs = strsplit(text, ","); + for( int i = 0, end = array_count(pairs); i < end; i += 2 ) { + unsigned x = atoi(pairs[i]); + unsigned y = atoi(pairs[i+1]); + array_push(a.frames[index].coords, vec2(x,y)); + } + } + else if( strend(k, ".uvs") ) { + array_reserve_(a.frames, index); + + const char *text = v; + array(char*) pairs = strsplit(text, ","); + for( int i = 0, end = array_count(pairs); i < end; i += 2 ) { + unsigned u = atoi(pairs[i]); + unsigned v = atoi(pairs[i+1]); + array_push(a.frames[index].uvs, vec2(u,v)); + } + } + else if( strend(k, "padding") ) { + padding = atoi(v); + } + else if( strend(k, "border") ) { + border = atoi(v); + } + else if( strend(k, "file") ) { + a.tex = texture(v, 0); + } + else if( strend(k, "bitmap") ) { + const char *text = v; + array(char) bin = base64_decode(text, strlen(text)); + a.tex = texture_from_mem(bin, array_count(bin), 0); + array_free(bin); + } +#if 0 + else if( strend(k, ".frame") ) { + array_reserve_(a.frames, index); + puts(k), puts(v); + } +#endif + } + + // post-process: normalize uvs and coords into [0..1] ranges + for each_array_ptr(a.frames, atlas_frame_t, f) { + for each_array_ptr(f->uvs, vec2, uv) { + uv->x /= a.tex.w; + uv->y /= a.tex.h; + } + for each_array_ptr(f->coords, vec2, xy) { + xy->x /= a.tex.w; + xy->y /= a.tex.h; + } + // @todo: adjust padding/border + } +#if 0 + // post-process: specify an anchor for each anim based on 1st frame dims + for each_array_ptr(a.anims, atlas_anim_t, anim) { + atlas_frame_t *first = a.frames + *anim->frames; + for( int i = 0; i < array_count(anim->frames); i += 2) { + atlas_frame_t *ff = a.frames + anim->frames[ i ]; + ff->anchor.x = (ff->sheet.z - first->sheet.z) / 2; + ff->anchor.y = (ff->sheet.w - first->sheet.w) / 2; + } + } +#endif + + return a; +} + +typedef struct sprite2 { OBJ + vec4 gamepad; // up,down,left,right + vec2 fire; // a,b + + vec3 pos; + float tilt; + unsigned tint; + unsigned frame; + unsigned timer, timer_ms; + unsigned flip_, flipped; + unsigned play; + bool paused; + // array(unsigned) play_queue; or unsigned play_next; + atlas_t *a; // shared + atlas_t own; // owned +} sprite2; + +void sprite2_setanim(sprite2 *s, unsigned name) { + if( s->play != name ) { + s->play = name; + s->frame = 0; + + atlas_frame_t *f = &s->a->frames[ s->a->anims[s->play].frames[s->frame] ]; + + s->timer_ms = f->delay; + s->timer = s->timer_ms; + } +} + +void sprite2_ctor(sprite2 *s) { + s->tint = WHITE; + s->timer_ms = 100; + s->flipped = 1; +} +void sprite2_dtor(sprite2 *s) { + memset(s, 0, sizeof(*s)); +} +void sprite2_tick(sprite2 *s) { + int move = input(s->gamepad.array[3]) - input(s->gamepad.array[2]); // RIGHT - LEFT + int dt = 16; // window_delta() * 1000; + + unsigned over = (s->timer - dt) > s->timer; + if(!s->paused) + s->timer -= dt; + if( over ) { + + int len = array_count(s->a->anims[s->play].frames); + unsigned next = (s->frame + 1) % (len + !len); + unsigned eoa = next < s->frame; + s->frame = next; + + atlas_frame_t *f = &s->a->frames[ s->a->anims[s->play].frames[s->frame] ]; + s->timer_ms = f->delay; + s->timer += s->timer_ms; + } + + if( s->play == 0 && move ) sprite2_setanim(s, 1); + if( s->play == 1 ) { //< + float speed = 1.0f; + if(move) s->pos.x += speed * move, s->flip_ = move < 0, sprite2_setanim(s, 1); + else sprite2_setanim(s, 0); + } +} +void sprite2_draw(sprite2 *s) { + atlas_frame_t *f = &s->a->frames[ s->a->anims[s->play].frames[s->frame] ]; + +#if 1 + // @todo { + unsigned sample = s->a->anims[s->play].frames[s->frame]; + sample = 0; + f->anchor.x = (-s->a->frames[sample].sheet.z + f->sheet.z) / 2; + f->anchor.y = (+s->a->frames[sample].sheet.w - f->sheet.w) / 2; + // } +#endif + + // rect(x,y,w,h) is [0..1] normalized, z-index, pos(x,y,scale), rotation (degrees), color (rgba) + vec4 rect = { f->sheet.x / s->a->tex.w, f->sheet.y / s->a->tex.h, f->sheet.z / s->a->tex.w, f->sheet.w / s->a->tex.h }; + sprite_rect(s->a->tex, rect, s->pos.y, vec4(s->pos.x+f->anchor.x,s->pos.y+f->anchor.y,s->flip_ ^ s->flipped?1:-1,1), s->tilt, s->tint); +} +void sprite2_edit(sprite2 *s) { + const char *id = vac("%p", s); + if( s && ui_collapse(id, id) ) { + ui_obj("%s", (obj*)s); + + ui_bool("paused", &s->paused); + ui_label(va("frame anim [%d]", s->a->anims[s->play].frames[s->frame])); + + int k = s->play; + if( ui_int("anim", &k) ) { + sprite2_setanim(s, k); + } + + int selected = ui_atlas(s->a); + if( selected ) sprite2_setanim(s, selected - 1); + + ui_collapse_end(); + } +} + +OBJTYPEDEF(sprite2,10); +AUTORUN { + STRUCT(sprite2, vec4, gamepad); + STRUCT(sprite2, vec2, fire); + STRUCT(sprite2, vec3, pos); + STRUCT(sprite2, float, tilt); + STRUCT(sprite2, rgba, tint); + STRUCT(sprite2, unsigned, frame); + STRUCT(sprite2, unsigned, timer); + STRUCT(sprite2, unsigned, timer_ms); + STRUCT(sprite2, unsigned, flipped); + STRUCT(sprite2, unsigned, play); + EXTEND(sprite2, ctor,edit,draw,tick); +} + +sprite2* sprite2_new(const char *ase, int bindings[6]) { + sprite2 *s = obj_new(sprite2, {bindings[0],bindings[1],bindings[2],bindings[3]}, {bindings[4],bindings[5]}); + s->own = atlas_create(ase, 0); + s->a = &s->own; + return s; +} +void sprite2_del(sprite2 *s) { + if( s ) { + if( s->a == &s->own ) atlas_destroy(&s->own); + obj_free(s); + memset(s, 0, sizeof(sprite2)); + } +} + + + +void game(unsigned frame) { + static camera_t cam; + static sprite2 *s1 = 0; + static sprite2 *s2 = 0; + static sprite2 *s3 = 0; + static sprite2 *s4 = 0; + if( !frame ) { + // camera center(x,y) zoom(z) + cam = camera(); + cam.position = vec3(window_width()/2,window_height()/2,8); + camera_enable(&cam); + + sprite2_del(s1); + sprite2_del(s2); + sprite2_del(s3); + sprite2_del(s4); + + s1 = sprite2_new("Captain Clown Nose.ase", (int[6]){KEY_UP,KEY_DOWN,KEY_LEFT,KEY_RIGHT,KEY_A,KEY_S}); + s2 = sprite2_new("Crew-Crabby.ase", (int[6]){KEY_I,KEY_K,KEY_J,KEY_L} ); + s3 = sprite2_new("Props-Shooter Traps.ase", (int[6]){0} ); + s4 = sprite2_new("Crew-Fierce Tooth.ase", (int[6]){0,0,KEY_N,KEY_M} ); + + // pos and z-order + s1->pos = vec3(window_width()/2, window_height()/2, 2); + s2->pos = vec3(window_width()/2, window_height()/2, 1); + s3->pos = vec3(window_width()/2, window_height()/2, 1); + s4->pos = vec3(window_width()/2, window_height()/2, 1); + + s4->flipped ^= 1; + } + + // camera panning (x,y) & zooming (z) + if( !ui_hover() && !ui_active() ) { + if( input(MOUSE_L) ) cam.position.x -= input_diff(MOUSE_X); + if( input(MOUSE_L) ) cam.position.y -= input_diff(MOUSE_Y); + cam.position.z += input_diff(MOUSE_W) * 0.1; // cam.p.z += 0.001f; for tests + } + + obj_tick(s1); + obj_draw(s1); + + obj_tick(s2); + obj_draw(s2); + + obj_tick(s3); + obj_draw(s3); + + obj_tick(s4); + obj_draw(s4); + + if( ui_panel("Sprites", PANEL_OPEN)) { + obj_edit(s1); + obj_edit(s2); + obj_edit(s3); + obj_edit(s4); + ui_panel_end(); + } +} + +int main() { + unsigned frame = 0; + + for( window_create(0.75, 0); window_swap(); ) { + if( input_down(KEY_Z) && input(KEY_ALT) ) window_record(file_counter(va("%s.mp4",app_name()))); + if( input_down(KEY_F5) ) frame = 0; + game( frame++ ); + } +} \ No newline at end of file diff --git a/tools/editor/windows.ini b/tools/editor/windows.ini index 83206a2..c59ec1e 100644 --- a/tools/editor/windows.ini +++ b/tools/editor/windows.ini @@ -15,7 +15,7 @@ x=0.000000 y=0.052117 w=0.209707 h=0.946108 -visible=1 +visible=0 [Nodes 󱁉] x=0.000916 y=0.053746

    H>)|0LcAj=Lp;B5Gb89#85mJSXbl5q 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